62
задан 5 November 2016 в 12:41

3 ответа

На Android> =6.0, Мы должны запросить время выполнения разрешения.

Step1: добавьте в файле

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

Step2 AndroidManifest.xml: разрешение Запроса.

int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);

if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE);
} else {
    //TODO
}

Step3: обратный вызов Дескриптора, когда Вы запрашиваете разрешение.

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
        case REQUEST_READ_PHONE_STATE:
            if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
                //TODO
            }
            break;

        default:
            break;
    }
}

Редактирование: чиновник Read ведут сюда Запрос Полномочий во Время выполнения

72
ответ дан 31 October 2019 в 13:43

Я испытывал эту проблему на устройствах Samsung (прекрасный на других). как zyamys, предложенный в его комментарии, я добавил manifest.permission строку, но в дополнение к, а не вместо исходной строки, таким образом:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.Manifest.permission.READ_PHONE_STATE" />

я нацелен на API 22, не должны явно просить полномочия.

8
ответ дан 31 October 2019 в 13:43

Вы выполняете Android M? Если так, это вызвано тем, что недостаточно объявить полномочия в декларации. Для некоторых полномочий необходимо явно спросить пользователя во времени выполнения: http://developer.android.com/training/permissions/requesting.html

54
ответ дан 31 October 2019 в 13:43

Другие вопросы по тегам:

Похожие вопросы: