2016-11-16 2 views
0

Я применил карту Baidu в своем приложении, и она отлично работает в версии для Android ниже 6, но имеет проблемы с версиями android 6. Я установил динамическое разрешение WRITE_SETTING для android 6. Если пользователь дает разрешение на приложение, то также класс Baidu MapView не может получить к нему доступ, и он сбой. журнала ошибок, как показано нижеОшибка интеграции карты Baidu в android 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 
     } 


    }} 
Смежные вопросы