【发布时间】:2019-03-18 21:36:24
【问题描述】:
在我的应用程序中,我需要在由 BroadcastReceiver 启动的活动中启动手电筒。 如果应用程序处于前台或后台并且屏幕处于打开状态,则它可以正常工作,但如果屏幕处于关闭状态(有或没有键盘锁),则应用程序崩溃。
分析: 当屏幕关闭时,创建相机对象仍然成功,但 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、小米 Mi A1 上测试 minSdkVersion 22
我搜索的链接:
flashlight not working,when device screen is off/sleep (android studio)
【问题讨论】:
标签: android android-permissions torch flashlight