Android 7.0 中未显示的其他功能
Additional Capabilities not showing in Android 7.0
我用清单文件中的以下 XML 代码制作了一个简单的手电筒应用程序
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.flash" />
Android Marshmallow 中的权限屏幕非常完美。 "All Permissions" 屏幕在附加功能下显示相机权限和手电筒但是 Android 7.0(摩托罗拉 Moto G 5 plus)没有在我的应用程序的附加功能中列出手电筒,我的应用程序也无法使用它。我现在无法提供 logcat,但很快会在编辑中提供。还有其他人知道任何权限更改吗?请帮我让它兼容 Android 7.0.
编辑: 这是logcat:
06-28 15:40:00.136 19036-19036/? I/art: Late-enabling -Xcheck:jni
06-28 15:40:00.165 19036-19036/com.camera2 W/System: ClassLoader
referenced unknown path: /data/app/com.camera2-1/lib/arm 06-28
15:40:00.207 19036-19036/com.camera2 I/CameraManagerGlobal: Connecting
to camera service 06-28 15:40:00.233 19036-19036/com.camera2
I/CameraManager: Using legacy camera HAL. 06-28 15:40:00.313
19036-19036/com.camera2 I/CameraManager: Using legacy camera HAL.
06-28 15:40:00.316 19036-19057/com.camera2 E/Camera: Error 2 06-28
15:40:00.316 19036-19057/com.camera2 I/RequestThread-0: Flushing all
pending requests. 06-28 15:40:00.316 19036-19057/com.camera2
E/RequestQueue: cancel failed: no repeating request exists. 06-28
15:40:00.317 19036-19057/com.camera2 I/CameraDeviceState: Legacy
camera service transitioning to state ERROR 06-28 15:40:00.583
19036-19036/com.camera2 I/CameraDeviceState: Legacy camera service
transitioning to state CONFIGURING 06-28 15:40:00.583
19036-19036/com.camera2 E/CameraDeviceState: Cannot call configure
while in state: 0 06-28 15:40:00.593 19036-19036/com.camera2
I/CameraDeviceState: Legacy camera service transitioning to state
CONFIGURING 06-28 15:40:00.593 19036-19168/com.camera2
I/RequestThread-0: Configure outputs: 1 surfaces configured. 06-28
15:40:00.593 19036-19168/com.camera2 D/Camera: app passed NULL surface
06-28 15:40:00.600 19036-19170/com.camera2 I/Adreno: QUALCOMM build
: bc479b6, I15255e4b4a
Build Date : 02/22/17
OpenGL ES Shader Compiler Version: XE031.09.00.03
Local Branch :
Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.5.5.R1.07.00.00.269.019
Remote Branch : NONE
Reconstruct Branch : NOTHING 06-28 15:40:00.617
19036-19036/com.camera2 I/CameraDeviceState: Legacy camera service
transitioning to state IDLE 06-28 15:40:00.632 19036-19169/com.camera2
I/OpenGLRenderer: Initialized EGL, version 1.4 06-28 15:40:00.632
19036-19169/com.camera2 D/OpenGLRenderer: Swap behavior 1 06-28
15:40:00.639 19036-19036/com.camera2 D/AndroidRuntime: Shutting down
VM 06-28 15:40:00.639 19036-19036/com.camera2 E/AndroidRuntime: FATAL
EXCEPTION: main
Process: com.camera2, PID: 19036
java.lang.IllegalStateException: Session has been closed; further
changes are illegal.
at android.hardware.camera2.impl.CameraCaptureSessionImpl.checkNotClosed(CameraCaptureSessionImpl.java:606)
at android.hardware.camera2.impl.CameraCaptureSessionImpl.setRepeatingRequest(CameraCaptureSessionImpl.java:227)
at com.camera2.MainActivity$a.onConfigured(Unknown Source)
at java.lang.reflect.Method.invoke(Native Method)
at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39)
at android.hardware.camera2.dispatch.HandlerDispatcher.run(HandlerDispatcher.java:65)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
在我的代码中进行了一些修改之后,我发现它就像添加一个 IllegalStateException 捕获器一样简单。至于额外的功能,它不会妨碍我的应用程序的功能,所以没关系。
我用清单文件中的以下 XML 代码制作了一个简单的手电筒应用程序
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="25" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.flash" />
Android Marshmallow 中的权限屏幕非常完美。 "All Permissions" 屏幕在附加功能下显示相机权限和手电筒但是 Android 7.0(摩托罗拉 Moto G 5 plus)没有在我的应用程序的附加功能中列出手电筒,我的应用程序也无法使用它。我现在无法提供 logcat,但很快会在编辑中提供。还有其他人知道任何权限更改吗?请帮我让它兼容 Android 7.0.
编辑: 这是logcat:
06-28 15:40:00.136 19036-19036/? I/art: Late-enabling -Xcheck:jni 06-28 15:40:00.165 19036-19036/com.camera2 W/System: ClassLoader referenced unknown path: /data/app/com.camera2-1/lib/arm 06-28 15:40:00.207 19036-19036/com.camera2 I/CameraManagerGlobal: Connecting to camera service 06-28 15:40:00.233 19036-19036/com.camera2 I/CameraManager: Using legacy camera HAL. 06-28 15:40:00.313 19036-19036/com.camera2 I/CameraManager: Using legacy camera HAL. 06-28 15:40:00.316 19036-19057/com.camera2 E/Camera: Error 2 06-28 15:40:00.316 19036-19057/com.camera2 I/RequestThread-0: Flushing all pending requests. 06-28 15:40:00.316 19036-19057/com.camera2 E/RequestQueue: cancel failed: no repeating request exists. 06-28 15:40:00.317 19036-19057/com.camera2 I/CameraDeviceState: Legacy camera service transitioning to state ERROR 06-28 15:40:00.583 19036-19036/com.camera2 I/CameraDeviceState: Legacy camera service transitioning to state CONFIGURING 06-28 15:40:00.583 19036-19036/com.camera2 E/CameraDeviceState: Cannot call configure while in state: 0 06-28 15:40:00.593 19036-19036/com.camera2 I/CameraDeviceState: Legacy camera service transitioning to state CONFIGURING 06-28 15:40:00.593 19036-19168/com.camera2 I/RequestThread-0: Configure outputs: 1 surfaces configured. 06-28 15:40:00.593 19036-19168/com.camera2 D/Camera: app passed NULL surface 06-28 15:40:00.600 19036-19170/com.camera2 I/Adreno: QUALCOMM build
: bc479b6, I15255e4b4a Build Date : 02/22/17 OpenGL ES Shader Compiler Version: XE031.09.00.03 Local Branch : Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.5.5.R1.07.00.00.269.019 Remote Branch : NONE Reconstruct Branch : NOTHING 06-28 15:40:00.617 19036-19036/com.camera2 I/CameraDeviceState: Legacy camera service transitioning to state IDLE 06-28 15:40:00.632 19036-19169/com.camera2 I/OpenGLRenderer: Initialized EGL, version 1.4 06-28 15:40:00.632 19036-19169/com.camera2 D/OpenGLRenderer: Swap behavior 1 06-28 15:40:00.639 19036-19036/com.camera2 D/AndroidRuntime: Shutting down VM 06-28 15:40:00.639 19036-19036/com.camera2 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.camera2, PID: 19036 java.lang.IllegalStateException: Session has been closed; further changes are illegal. at android.hardware.camera2.impl.CameraCaptureSessionImpl.checkNotClosed(CameraCaptureSessionImpl.java:606) at android.hardware.camera2.impl.CameraCaptureSessionImpl.setRepeatingRequest(CameraCaptureSessionImpl.java:227) at com.camera2.MainActivity$a.onConfigured(Unknown Source) at java.lang.reflect.Method.invoke(Native Method) at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39) at android.hardware.camera2.dispatch.HandlerDispatcher.run(HandlerDispatcher.java:65) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6123) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
在我的代码中进行了一些修改之后,我发现它就像添加一个 IllegalStateException 捕获器一样简单。至于额外的功能,它不会妨碍我的应用程序的功能,所以没关系。