以下ADB命令在Android 11设备上不起作用
adb -d shell "am start -a android.media.action.IMAGE_CAPTURE" -W结果:
Starting: Intent { act=android.media.action.IMAGE_CAPTURE }
Error: Activity not started, unknown error code 102这似乎与Android11的变化有关,请参阅Android 11 (R) return empty list when querying intent for ACTION_IMAGE_CAPTURE,这里提到的解决方案是将此添加到清单中
<queries>
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
</queries>在亚洲开发银行中有没有类似的东西?
发布于 2021-05-04 19:50:47
这似乎是Android中的一个bug。相机活动启动不会因为您链接的问题而失败,而是因为AppOpsManager服务拒绝:
05-04 14:16:51.789 620 2669 W ActivityTaskManager: Appop Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x10000000 cmp=com.android.camera2/com.android.camera.CaptureActivity } from null (pid=4079, uid=2000) requires android:camera这可以通过以下方式验证
adb shell appops get com.android.shell其中,com.android.shell是命令行实用程序(如am )提供的包名,即Android Shell包。这就产生了
Uid mode: COARSE_LOCATION: foreground
LEGACY_STORAGE: ignore
CAMERA: allow; rejectTime=+4m37s345ms ago这显示了壳牌程序包在多长时间内拒绝了CAMERA op。
但是这种拒绝策略是错误的,因为com.android.shell已经拥有CAMERA权限,可以通过以下方式进行验证
adb shell dumpsys package com.android.shell|grep 'android.permission.CAMERA'
android.permission.CAMERA
android.permission.CAMERA: granted=true, flags=[ SYSTEM_FIXED|GRANTED_BY_DEFAULT]一种替代方案(可能并不适用于所有人)是从一个可以工作的根shell (在adb root/su之后)开始这个意图。
05-04 14:17:23.610 502 2518 I CameraService: CameraService::connect call (PID -1 "com.android.camera2", camera ID 0) for HAL version default and Camera API version 2https://stackoverflow.com/questions/67080125
复制相似问题