Разрешение не спрашивается - PullRequest
0 голосов
/ 04 декабря 2018

Я хотел бы знать, почему мое разрешение не запрашивается при запуске приложения, вот мои манифестные разрешения:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

И когда я прохожу через параметры моего телефона, я толькоиметь разрешение «позиция» (и оно отключено).

Ответы [ 4 ]

0 голосов
/ 04 декабря 2018

для зефира (API 23) и выше вы должны получить разрешение на местоположение, состояние телефона и другие опасные разрешения не только в своем манифесте, но и в своем коде (разрешение времени выполнения). Для других разрешений - манифестдостаточно.

см. это видео также вы можете найти свое решение в этом Q & A

0 голосов
/ 04 декабря 2018

Если по запросу не спрашивается, вы имеете в виду, что пользователю не предлагается разрешить доступ в Интернет, тогда это нормально.Интернет находится в обычном списке разрешений, поэтому он автоматически предоставляется.Для получения дополнительной информации о нормальных разрешениях посмотрите: https://developer.android.com/guide/topics/permissions/normal-permissions.html

Кроме того, добавление разрешений является двухэтапным процессом;как только вы заявите в своем манифесте разрешение, которое вам необходимо, вам также придется выполнить некоторые настройки в вашем Java-файле.Взгляните на https://developer.android.com/training/permissions/requesting

Кроме того, если вы ищете более простые способы работы с разрешениями, то для этого есть библиотеки, такие как RxPermissions: https://github.com/tbruyelle/RxPermissions

Надеюсь, этопомогает!

0 голосов
/ 04 декабря 2018

Если вы нацеливаетесь на SDK 26+, вам необходимо проверить наличие разрешений в коде, подобном следующему:

if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACCESS_FINE_LOCATION)
    != PackageManager.PERMISSION_GRANTED) {
// Permission is not granted
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
        Manifest.permission.ACCESS_FINE_LOCATION)) {
    // Show an explanation to the user *asynchronously* -- don't block
    // this thread waiting for the user's response! After the user
    // sees the explanation, try again to request the permission.
} else {
    // No explanation needed, we can request the permission.
    ActivityCompat.requestPermissions(thisActivity,
            arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
            MY_PERMISSIONS_ACCESS_FINE_LOCATION)

    // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
    // app-defined int constant. The callback method gets the
    // result of the request.
}
} else {
// Permission has already been granted - or running on old Android
}

Это описано в Запрос разрешений приложения

0 голосов
/ 04 декабря 2018

Вы должны запросить разрешение на выполнение. См. Документацию: Запрос разрешений приложения

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