Спросите разрешения, только показывая предоставленные - PullRequest
2 голосов
/ 10 июля 2019

Я выполнил простые шаги, чтобы запросить несколько разрешений одновременно, вот мой код для запроса разрешения:

class MainActivity : AppCompatActivity() {
    private val permissionCode = 100
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    getPermissions()
}

fun getPermissions() {
    ActivityCompat.requestPermissions(
        this,
        arrayOf(Manifest.permission.NFC, Manifest.permission.INTERNET),
        permissionCode
    )
}

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        when (requestCode) {
            permissionCode -> {
                if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // Permission granted
                    Toast.makeText(this, "Permissions granted", Toast.LENGTH_SHORT).show()
                } else {
                    // Permission denied
                    Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show()
                }
            }
        }
    }

Когда я запускаю приложение, у меня не появляется диалоговое окно для принятия или отклонения разрешений и просто отображается тост «Предоставленные разрешения», но если я проверяю разрешения в информации о приложении, я не вижу предоставленных разрешений. Что я делаю не так? Кто-нибудь может мне помочь?

1 Ответ

4 голосов
/ 10 июля 2019

Ни INTERNET, ни NFC не являются разрешениями, которые необходимо запрашивать во время выполнения.Достаточно просто иметь их в манифесте (через <uses-permission> элементы).

Во время выполнения необходимо запрашивать только разрешения с уровнем защиты dangerous - эта таблица перечисляет их.INTERNET и NFC - это разрешения normal, а не dangerous.

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