代码之家  ›  专栏  ›  技术社区  ›  Ruchir Baronia

我怎么才能不把麦克风占为己有

  •  15
  • Ruchir Baronia  · 技术社区  · 6 年前

    我的应用程序占用了用户的麦克风。当其他应用程序需要使用麦克风时,我可以自动关闭它吗?

    我有一个Android应用程序,它有一些非常酷的麦克风功能,类似于amazonalexa,它在后台服务中一直保持运行。问题是,我的应用程序占用了用户的麦克风,使其无法使用:

    enter image description here

    然而,这是代表我的糟糕的应用程序行为,我想尽我所能避免它。 当其他应用程序请求使用麦克风时,是否可以得到通知,以便我可以自动停止服务?

    PS:我正在使用Pocketsphinx库进行连续的背景语音识别。

    2 回复  |  直到 6 年前
        1
  •  0
  •   BHARATHWAJ    6 年前

    没有标准的方法可以通知其他应用程序您想要访问麦克风(以便他们释放资源并允许您访问它)。不过,您可以向所有其他应用程序发送广播(“请求麦克风”),但其他应用程序必须实现此功能(很少或没有开发人员会这样做)。

    我建议您直接通知用户麦克风当前不可用,因为您不能执行其他操作。

        2
  •  0
  •   shkschneider blazzerbg    6 年前

    这很棘手,因为我不是任何API的软件。这肯定需要系统级的api才能像“Ok Google”那样工作。

    一个可行的选择是 https://stackoverflow.com/a/43623308/603270 )要定期运行作业,请使用 android.permission.PACKAGE_USAGE_STATS

    这也许就足够了。但是你也可以添加一些关于电话的内容( how to detect phone call broadcast receiver in android )使用 android.intent.action.PHONE_STATE Receiver 或者甚至 MediaPlayer 直接)。

        3
  •  0
  •   AntonioSanchez    5 年前