2017-01-15 8 views
0

私は数日前に自分のアプリケーションをリリースしました。今問題は、ユーザーがApp ManagerでGoogleマップのアクセス許可を有効にする必要があることです。自動的に起動するのはどうしたらいいですか? 私はAndroidのマニフェストファイルにAndroid Version >= MについてはGoogleマップの許可が自動的に

<uses-permission android:name="android.permission.READ_PROFILE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.LOCATION" /> 

答えて

0

をこれらの権限を持っている、権限が自動的に実行することはできませんRuntime、で求められることがあります。一般Runtime Permission尋ねるコード:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 

    if (ActivityCompat.checkSelfPermission 
      (this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED 
      && 
      ActivityCompat.checkSelfPermission 
        (this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) 
    { 
     requestPermissions(new String[]{ 
       Manifest.permission.ACCESS_COARSE_LOCATION, 
       Manifest.permission.ACCESS_FINE_LOCATION 
     }, 1); // 1 is requestCode 
     return; 

    } 
} 

ハンドル要求:

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
switch (requestCode) { 

    case 1: 
     if (grantResults[0] != PackageManager.PERMISSION_GRANTED){ 
      Toast.makeText(your_activity.this,"PERMISSION_DENIED",Toast.LENGTH_SHORT).show(); 
      } 
      else { 
       Toast.makeText(your_activity.this,"PERMISSION_GRANTED",Toast.LENGTH_SHORT).show(); 
       // permission granted do something 
      } 
     break; 
    } 
} 
+1

非常に私はマップクラスの許可をチェックすることを忘れてしまいました! –

0

あなたはインストール時にデフォルトですべてのあなたの許可を可能にする22以下に、あなたのGradleファイル内targetSdkVersionを設定することができますが、よりよい解決策がありますあなたのコードにRuntime Permissionをつけて処理するtargetSdkVersion 23以上

+1

Markusの場合、彼は既にアプリを公開しているので、これはうまくいきません。 Googleは、古いバージョンのアクセス許可の概念が適用されているバージョンにアプリのリリースをダウングレードできないように、Google Playでいくつかのfriggin lameチェックを追加しました。バージョン> 22(!)を公開したことがあっても、古いバージョンを再公開することはできません。 – Bevor

+0

あなたはそうです、この通知のおかげで;) –

関連する問題