询问权限仅显示为已授予

时间:2019-07-10 20:21:18

标签: android kotlin android-permissions

我按照简单的步骤一次请求多个权限,这是我的权限请求代码:

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 个答案:

答案 0 :(得分:4)

INTERNETNFC都不是在运行时需要请求的权限。仅将它们包含在清单中(通过<uses-permission>元素)就足够了。

在运行时仅需要请求保护级别为dangerous的权限-this table列出了那些权限。 INTERNETNFCnormal的权限,而不是dangerous