设备屏幕关闭时如何打开手电筒?

诺姆·科恩

在我的应用程序中,我需要在由 BroadcastReceiver 启动的活动中启动手电筒。如果应用程序在前台或后台并且屏幕打开,它可以正常工作,但如果屏幕关闭(有或没有键盘锁),应用程序就会崩溃。

分析:screen关闭时,创建camera对象依然成功,但是Camera.startPreview()抛出RuntimeException。

我可以理解在屏幕关闭时禁止激活相机的动机,但我如何才能打开/关闭手电筒?

cam = Camera.open();
//...
try {
     cam.startPreview();
}catch(RuntimeException e){
    Log.w(TAG,"Failed opening camera preview. Maybe screen locked?: " + e.getMessage());
    return;
}

权限:

 <uses-permission android:name="android.permission.CAMERA" />

我尝试使用 FLASHLIGHT(未记录)权限,但它在运行时被忽略。

在 Android 8.1 上测试,小米 A1 minSdkVersion 22

我搜索的链接:

闪光灯没有打开

手电筒不工作,当设备屏幕关闭/睡眠时(android studio)

加布·塞尚

如果屏幕关闭,则 Activity 在打开之前实际上不会启动。这就是相机无法打开的原因。相反,启动一个服务来完成它,它实际上可以立即运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章