离子应用程序在Android模拟器上请求用户对摄像头的许可,但在离子离子DevApp中未请求

时间:2019-10-30 16:51:49

标签: android ionic-framework ionic4 capacitor

问题

我目前正在按照本教程学习Ionic 4 https://ionicframework.com/docs/angular/your-first-app

但是,我没有像本教程中那样使用Cordova,而是打算使用Capacitor。我遵循了《电容器设置指南》,并使用了其官方文档中给出的摄像机示例。

我确保AndroidManifest.xml中具有以下权限:

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

然后我在终端中运行了此

ionic capacitor run android --livereload --external

这将打开Android Studio并准备我的项目。

使用Android模拟器

然后,我按下运行选定的配置按钮,该按钮会将应用程序安装在模拟器上。当我按下相机按钮时,系统会要求我将应用程序授予以下权限:

  • 允许应用程序拍照和录制视频吗?
  • 允许应用访问设备上的照片,媒体和文件

然后将其像这样在仿真器中加载相机,然后我可以按照本教程的要求拍照(下面的嵌入图像,因为它很大)。

使用Ionic DevApp使用同一应用程序

但是,当我尝试通过在container.config.json中手动输入服务器URL来在Ionic DevApp中使用摄像机时,并没有要求我提供上述权限。按下完全相同的按钮在应用程序中什么也没做。

我尝试手动授予Ionic DevApp应用程序对我的物理设备的权限,但这似乎无法解决问题,因为该按钮仍然无法执行任何操作。

仿真器

  • 仿真器API:28
  • 仿真器Android目标:Android 9.0

物理设备

  • 物理设备:三星S8 +
  • Android版本:Android 9.0

图片

Emulator

2 个答案:

答案 0 :(得分:1)

Ionic devApp仅适用于Cordova

答案 1 :(得分:0)

1- 添加 ionic 应用的权限:https://ionicframework.com/docs/native/android-permissions

2- 删除 --external 因为它不起作用,正确的推荐: 离子帽运行 android --livereload --consolelogs --serverlogs

我不知道为什么它在 --external 模式下不起作用!