Для вызова требуется уровень API 23 (текущий минимум 18): android.app.Activity # requestPermissions - PullRequest
0 голосов
/ 23 ноября 2018

Ошибка отображается в этой функции "checkSelfPermission"

Это мой код:

private void checkBTPermissions() {
        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
            int permissionCheck =
            this.checkSelfPermission("Manifest.permission.ACCESS_FINE_LOCATION");

           permissionCheck+=this.checkSelfPermission("Manifest.permission.ACCESS_COARSE_LOCATION");

          if (permissionCheck != 0) {

                this.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1001); //Any number
            }
        }else{
            Log.d(TAG, "checkBTPermissions: No need to check permissions. SDK version < LOLLIPOP.");
        }
    }

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Вы не правы по следующему коду:

if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {}

Build.VERSION_CODES.LOLLIPOP = 21 .Вы можете запросить разрешения времени выполнения только для уровня API> 22.

Исправьте это, изменив свой код на:

if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {}

Или еще лучше использовать мою библиотеку . :)

0 голосов
/ 23 ноября 2018

Проверка разрешений доступна только из API 23, т.е. из Зефира.Вам не нужно запрашивать разрешения для Api <23, поскольку они автоматически предоставляются при установке приложения.Больше информации -<a href="https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-runtime-permissions" rel="nofollow noreferrer">https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-runtime-permissions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...