2016-10-28 34 views
0

私はこれについて多くのスレッドを読んだが、私は問題を解決する方法を正確には読んでいない。私はコードバでモバイルアプリを作成しました。地図を表示するサービスが必要です。私のマニフェストではパーミッションを追加し、Android 5以下では完全に動作しますが、Android 6ではロケーションサービスが失敗します。私は新しいAndroidバージョンでGoogleが権限の変更方法を読んで、それをコルドバのいくつかのプラグインでシミュレートできますが、失敗している(または多分私はどのように動作するのかわかりません)。Cordova Android 6のアクセス許可

私は私のindex.js私のmanifest.xmlで

function onDeviceReady() { 
    navigator.geolocation.getCurrentPosition(CurrentPosition); 
}; 

そして、この権限でこれを持っています。

<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ではどのように位置情報サービスを実行できますか?

+0

を試みたことがありますか?次のプラグイン 'https:// www.npmjs.com/package/cordova.plugins.diagnostic'を使用してみてください。これはあなたに許可と尋ねられます。 – Deepak

+0

これは私の最初のアイデアで問題を解決しましたが、プラグインフォルダに追加してconfig.xmlを追加すると、エミュレータを起動しないときにcordova.plugins.diagnosticオブジェクトを認識しません>:< –

答えて

1

cordova-plugin-geolocationを使用している場合は、Android Marshmallow以上で許可要求を開始します。

これで通常通りnavigator.geolocationを使用することができます。あなたの​​3210で

<feature name="Geolocation"> 
    <param name="android-package" value="org.apache.cordova.GeoBroker" /> 
</feature> 

の構成は次のようなものになるだろう。私は現時点で私の電話でパッケージ名についてはわかりません。

それとも:

cordova plugin add cordova-plugin-geolocation

5+コルドバを使用している場合。

+0

実際にHTML5のジオロケーションと作品マシュマロ以外のすべてのデバイスでこのパッケージをダウンロードしてプラグインフォルダに追加しますが、正確な作業は分かりません。私はconfig.xmlにいくつかのコードを追加する必要がありますか? –

+0

configについてのコメントを追加しました。前述のように、正確なプラグインパッケージ名についてはわかりません。 – msbit

0

私はcordova.plugins.diagnosticをダウンロードし、index.jsでこのコードを使用して、アプリの起動時に実行しますが、動作しません。

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

編集AnroidManifest.xmlと変更あなたはマシュマロのために、実行時のアクセス許可を与えることでandroid:targetSdkVersionから22

android:targetSdkVersion="22" 
関連する問題