Java 当手机空闲屏幕关闭时是否识别语音?

Java 当手机空闲屏幕关闭时是否识别语音?,java,android,voice-recognition,Java,Android,Voice Recognition,我是否可以提供服务,即使在手机空闲或屏幕关闭时也能识别语音?我的意思是,即使在空闲状态下,手机也能听到用户说的话。这是关于如何做到这一点的完整程序 这说明了如何录制音频,同样的实现也可以用来收听音频 此外,还有关于什么是服务的开发指南 来自developer.android.com 服务是在后台运行以执行以下操作的组件 长时间运行的操作或为远程进程执行工作。A. 服务不提供用户界面。例如,服务 当用户处于不同的位置时,可能会在后台播放音乐 应用程序,或者它可以在不阻塞的情况下通过网络获取数据

我是否可以提供
服务
,即使在手机空闲或屏幕关闭时也能识别语音?我的意思是,即使在空闲状态下,手机也能听到用户说的话。

这是关于如何做到这一点的完整程序

这说明了如何录制音频,同样的实现也可以用来收听音频

此外,还有关于什么是服务的开发指南

来自developer.android.com

服务是在后台运行以执行以下操作的组件 长时间运行的操作或为远程进程执行工作。A. 服务不提供用户界面。例如,服务 当用户处于不同的位置时,可能会在后台播放音乐 应用程序,或者它可以在不阻塞的情况下通过网络获取数据 用户与活动的交互。另一个组件,例如 活动,可以启动服务并让其按顺序运行或绑定 与之互动。服务作为服务的子类实现 您可以在《服务开发人员指南》中了解更多信息

这将为您提供所需的所有信息:

您还必须在服务中获得a,防止手机进入睡眠状态,以便录制音频。您可能会坚持使用部分唤醒锁,因为您不需要打开屏幕

您还需要wakelock权限

然而,保持设备处于活动状态并持续处理声音对于我所能想到的任何实现都是不明智的


对于大多数用途来说,这是一个可怕的想法,因为它将在数小时内(最多)耗尽你的电池电量。

我一直在努力制作一个背景录音机(当屏幕关闭时),我发现了以下选项:

  • 一个完整的wakelock可以让你保持录音,但可以保持屏幕打开。(不理想)

  • 部分唤醒锁会很好,但它实际上不起作用——至少在我的手机上是这样。(cpu保持活动状态,但几分钟后麦克风的数据仅为0)

  • 使用前台服务,该服务启动录制音频的后台线程。这是最好的,因为它允许屏幕关闭,同时仍无限期录制


  • 请参见此处的示例:

    希望这不可能。我不想在我的设备上安装这样的应用;)很有可能。它需要用户权限,但服务是在后台运行的。这就是为什么即使我打开屏幕,潘多拉仍在播放。这就是为什么一些音频录制应用程序允许您关闭屏幕以节省电池的原因。问题是,即使在空闲状态下,手机也能听到并识别用户所说的话吗?有可能吗?是的,理论上,开发一个运行服务的应用程序来记录/识别用户所说的话是非常简单的。我不相信这是真的。我有一个名为TapeMachine的应用程序,当我的屏幕关闭时,我用它来记录我的课程。这证明,当屏幕完全关闭时,您可以轻松录制音频。如你所见。它使用“防止睡眠”权限只是为了防止在录制时关机,但在关机时录制也很简单。我从来没有说过在屏幕关闭时不能录制。事实上,我说他应该使用部分唤醒,因为他不需要打开屏幕。但是wakelock是让其他资源保持活动状态所必需的。您提到的“防止睡眠权限”是允许使用wakelocks的权限(我在回答中提到的权限)。我尝试使用默认音频重新编码器录制,但在屏幕关闭时,它无法录制语音。我想知道磁带机是如何在屏幕外录制音频的。WAKELOCK能解决这个问题吗?我想是的,因为磁带机需要wakelock许可。是的。它完全可以解决这个问题。只需确保在使用完wakelock后释放它,因为使用wakelock的每一秒都会耗尽电池电量。