【发布时间】:2017-09-26 02:37:28
【问题描述】:
当我在 InstantApp 模式下启动我的 android 应用时,即使在授予相关相机权限后,它也无法打开相机。
我正在创建 Android Instant App,用户可以在其中捕获图像并上传到服务器。
我正在使用 Camera2 API。 InstantApp 不允许 MediaStore.ACTION_IMAGE_CAPTURE 意图,因为 Android 不允许外部存储权限。
如果我在正常(非即时)模式下启动,应用程序可以在请求相关权限后打开相机。
但是当我在 InstantApp 模式下启动时,它无法打开相机。我在 logcat 中看到了这些日志。
09-26 07:33:29.104 7846-7846/com.project.snapdrive I/CameraManagerGlobal:连接到相机服务
09-26 07:33:29.174 7846-7846/com.project.snapdrive I/CameraManager:使用旧相机 HAL。
09-26 07:33:29.182 7846-7891/com.project.snapdrive 带摄像头:连接到摄像头 0:-74 时出错(不是数据消息)
如果你想看代码,我的项目是here。
我正在使用模拟器 Nexus 5X、Android 6.0、API 23。
【问题讨论】:
-
尝试在您的手机中启动相同的应用程序。
-
我没有 Pixel 或 Nexus。我还有其他变体,但这些变体并未被 Google 列入白名单。
-
我运行了您的即时应用程序并收到了
java.lang.SecurityException: Lacking privileges to access camera service错误。在即时应用程序中存在一个关于 CAMERA 权限被拒绝的公开错误issuetracker.google.com/issues/66942980 -
即时应用与标准相机意图 developer.android.com/training/camera/photobasics.html 一起使用。我使用
MediaStore.ACTION_IMAGE_CAPTURE创建了一个示例应用程序,并确认可以使用相机应用程序从即时应用程序中拍摄照片。 -
@Vikash 你知道吗,它只适用于 O for me atm。我所做的只是从developer.android.com/training/camera/photobasics.html 复制“使用相机应用拍照”和“获取缩略图”中的代码。相机打开,我能够从中获得结果,无需相机许可。 issuetracker.google.com/issues/66942980#comment3
标签: android android-camera android-camera2 android-instant-apps