2016-11-16 5 views
0

私のアプリケーションでBaiduマップを実装しており、6以下のアンドロイドバージョンで正常に動作していますが、上記のアンドロイド6バージョンに問題があります。 私はアンドロイド6の動的WRITE_SETTING権限を実装しています。ユーザーがアプリケーションにアクセス権を与えていれば、Baidu MapViewクラスにアクセスできずクラッシュしています。 以下のエラーログBaiduマップ統合エラーがアンドロイド6以上

java.lang.SecurityException: Permission Denial: requires permission android.permission.WRITE_SETTINGS 
at com.baidu.android.bbalbs.common.util.a.a(DeviceId.java:206) 
at com.baidu.android.bbalbs.common.util.a.a(DeviceId.java:68) 
at com.baidu.android.bbalbs.common.util.CommonParam.b(CommonParam.java:72) 
at com.baidu.android.bbalbs.common.util.CommonParam.a(CommonParam.java:45) 
at com.baidu.platform.comapi.c.c.p(Unknown Source) 
at com.baidu.platform.comapi.c.c.c(Unknown Source) 
at com.baidu.mapapi.a.b(Unknown Source) 
at com.baidu.mapapi.map.MapView.a(Unknown Source) 
at com.baidu.mapapi.map.MapView.<init>(Unknown Source) 

この問題を解決するにはどうすればよいですか?

答えて

0

Android 6の権限メカニズムのアプローチが異なるため、同じ問題が発生しました(https://developer.android.com/training/permissions/index.htmlで説明)。 は、このようにwrite_settings許可を求めて解決:

ActivityCompat.requestPermissions(this ,new String[]{Manifest.permission.WRITE_SETTINGS,1); 

"これは" メソッドを含む活動である:

@Override 
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] results) { 
    switch (requestCode) { 
     case 1: { 
      if (results.length > 0 
        && results[0] == PackageManager.PERMISSION_GRANTED) { 
       //You had the permission 
       } else { 
        // Permission denied! 
       } 
       return; 
      } 
      // With additional 'case' you can handle additional permission check 
     } 


    }} 
関連する問題