2016-11-16 3 views
0

내 응용 프로그램에서 Baidu지도를 구현하고 6 아래 안드로이드 버전에서 잘 작동하지만 위의 안드로이드 6 버전에 문제가 있습니다. 안드로이드에 대한 동적 WRITE_SETTING 권한을 구현했습니다. 6. 사용자가 앱에 권한을 부여하면 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의 허가를 요청 해결 :

@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 
     } 


    }} 
:

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

은 "이"를 포함하는 방법 활동을하다