首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cordova Android 6权限

Cordova Android 6权限
EN

Stack Overflow用户
提问于 2016-10-28 08:36:04
回答 3查看 1.5K关注 0票数 1

我读了很多关于这个问题的帖子,但我还没有确切地读到如何解决我的问题。我用cordova创建了一个移动应用程序,我需要位置服务来显示地图。在我的清单中,我添加了权限,在Android5或更低版本中运行良好,但在Android6中定位服务失败。我在新的Android版本中读到Google更改权限方法,并读到我可以用Cordova中的一些插件来模拟这一点,但失败了(或者我不知道如何工作)。

我的index.js里有这个

代码语言:javascript
复制
function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(CurrentPosition);
};

以及我的manifest.xml中的此权限。

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

你知道如何在Android 6中运行定位服务吗?

EN

回答 3

Stack Overflow用户

发布于 2016-10-28 08:55:18

如果你使用cordova-plugin-geolocation,它会负责在Android Marshmallow及更高版本上发起权限请求。

然后,您应该能够正常使用navigator.geolocation

配置将类似于:

代码语言:javascript
复制
<feature name="Geolocation">
    <param name="android-package" value="org.apache.cordova.GeoBroker" /> 
</feature>

在你的config.xml里。我不确定包裹的名字,目前在我的手机上。

或者只是:

cordova plugin add cordova-plugin-geolocation

如果使用的是科尔多瓦5+。

票数 1
EN

Stack Overflow用户

发布于 2016-10-29 02:22:05

我下载了cordova.plugins.diagnostic,并在index.js中使用此代码在应用程序启动时运行,但不起作用。

代码语言:javascript
复制
 cordova.plugins.diagnostic.getLocationAuthorizationStatus(function (status) {
            switch (status) {
                case cordova.plugins.diagnostic.permissionStatus.NOT_REQUESTED:
                    console.log("Permission not requested");
                    break;
                case cordova.plugins.diagnostic.permissionStatus.DENIED:
                    console.log("Permission denied");
                    break;
                case cordova.plugins.diagnostic.permissionStatus.GRANTED:
                    navigator.geolocation.getCurrentPosition(CurrentPosition);
                    console.log("Permission granted always");
                    break;
                case cordova.plugins.diagnostic.permissionStatus.GRANTED_WHEN_IN_USE:
                    console.log("Permission granted only when in use");
                    break;
            }
        }, function (error) {
            console.error("The following error occurred: " + error);
        });
票数 0
EN

Stack Overflow用户

发布于 2017-02-28 20:34:19

编辑AnroidManifest.xml并将android:targetSdkVersion更改为22

代码语言:javascript
复制
android:targetSdkVersion="22"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40296249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档