【问题标题】:Ask permissions just showing granted询问权限仅显示已授予
【发布时间】:2019-07-11 04:45:18
【问题描述】:

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

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()
                }
            }
        }
    }

当我启动应用程序时,我没有看到任何对话框来接受或拒绝权限,只是获得“授予权限”的祝酒词,但是如果我检查应用程序信息中的权限,我看不到任何权限被授予。我做错了什么?有人可以帮我吗?

【问题讨论】:

    标签: android kotlin android-permissions


    【解决方案1】:

    INTERNETNFC 都不是需要在运行时请求的权限。只需将它们放在清单中(通过&lt;uses-permission&gt; 元素)就足够了。

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

    【讨论】:

    猜你喜欢
    • 2010-10-20
    • 2013-07-27
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    相关资源
    最近更新 更多