【问题标题】:Set app permissions on Android 6.x (Marschmallow) in phonegap/cordova app在 phonegap/cordova 应用程序中设置 Android 6.x (Marschmallow) 上的应用程序权限
【发布时间】:2016-04-20 09:04:16
【问题描述】:

从 Android 6.x (Marshmallow) 开始,应用在安装前不应该请求许可,而是在运行时请求许可。

我正在开发一个使用条形码插件的 phonegap 应用程序。当我在 Android 6.x 上运行此应用程序时,它在安装之前和运行时都不会要求用户许可。相反,它只是向您显示一个应用程序无法运行且必须重新启动设备的框。

根据http://phonegap.com/blog/2016/02/09/phonegap_6_now_on_build/,我在我的项目的config.xml文件中添加了以下行(路径:myProject/config.xml):

<preference name="phonegap-version" value="cli-6.0.0" />

我在本地部署,但仍会显示相同的错误。有没有办法解决它?我希望应用程序在开始安装之前显示此框。

更新:在我的 manifest.xml 中,我将其设置为他的:

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />

我现在已将 targetSdkVersion 从 23 减少到 22。并且错误没有出现。但它也没有请求许可。我怎样才能让它请求许可?

【问题讨论】:

  • 也许你可以试试&lt;preference name="permissions" value="none"/&gt;
  • 为什么?这是黑客吗?看起来像一个解决方法?
  • 你搞定了吗?
  • 检查这可能对你有帮助stackoverflow.com/questions/34117301/…
  • 我已经知道这个问题了。它基本上链接到我一开始发布的页面。另请参阅底部我在 OP 中的更新。

标签: android cordova phonegap-plugins


【解决方案1】:

在 Android 6 上,当面向 API 级别 23+ 时,您需要在运行时请求使用摄像头的权限。即使相机的 uses-permission 标签存在于 AndroidManifest.xml 中

尝试下面给出的链接检查权限..

barcode-link

示例用法:

function hasCameraPermission() {
    cordova.plugins.barcodeScanner.hasCameraPermission(
      function(result) {
        // if this is 'false' you probably want to call 'requestCameraPermission' now
        alert(result);
      }
    )
  }

  function requestCameraPermission() {
    // no callbacks required as this opens a popup which returns async
    cordova.plugins.barcodeScanner.requestCameraPermission();
  }

祝你好运..

【讨论】:

  • 是否需要安装任何其他插件才能使其正常工作。因为它不适合我。
猜你喜欢
  • 2013-07-11
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多