我正在编写一个录音机应用程序,我想知道是否可以在手机锁定屏幕时激活 MediaRecorder。如果是这样,这只是特殊许可的问题还是其他问题?提前致谢。
3 回答
you should try using PowerManager class with permission android.permission.WAKE_LOCK.
you can find more Here.
对的,这是可能的。锁定屏幕不会影响应用程序中服务的工作。因此,如果您使用的是服务,那么您的录制将继续进行。但是,如果您的手机处于待机状态,则可能无法正常工作。在这种情况下,只需抓住一个唤醒锁来保持 CPU 处于活动状态并满足您的需求。但是,抓取唤醒锁会影响电池,因此您必须明智地使用它。
如今(Android 11 或更高版本),这应该不再可能:
注意:在运行 Android 9(API 级别 28)或更高版本的设备上,后台运行的应用程序无法访问麦克风。因此,您的应用应仅在其位于前台或在前台服务中包含 MediaRecorder 实例时才录制音频。
[1] https://developer.android.com/guide/topics/media/mediarecorder
限制对位置、摄像头和麦克风的访问
为了帮助保护用户隐私,Android 11(API 级别 30)对前台服务何时可以访问设备的位置、摄像头或麦克风进行了限制。当您的应用在后台运行时启动前台服务时,前台服务有以下限制:
...
前台服务无法访问麦克风或摄像头。
[2] https://developer.android.com/guide/components/foreground-services