询问权限只是显示授予
Ask permissions just showing granted
我按照简单的步骤一次请求多个权限,这是我的权限请求代码:
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()
}
}
}
}
当我启动应用程序时,我没有看到任何接受或拒绝权限的对话框,只是祝酒词 "Permissions granted" 但是如果我检查应用程序信息中的权限,我看不到任何授予的权限。我做错了什么?有人可以帮助我吗?
INTERNET
和 NFC
都不是需要在运行时请求的权限。只需将它们放在清单中(通过 <uses-permission>
元素)就足够了。
只有保护级别为 dangerous
的权限才需要在运行时请求 - this table 列出了这些权限。 INTERNET
和 NFC
是 normal
权限,而不是 dangerous
。
我按照简单的步骤一次请求多个权限,这是我的权限请求代码:
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()
}
}
}
}
当我启动应用程序时,我没有看到任何接受或拒绝权限的对话框,只是祝酒词 "Permissions granted" 但是如果我检查应用程序信息中的权限,我看不到任何授予的权限。我做错了什么?有人可以帮助我吗?
INTERNET
和 NFC
都不是需要在运行时请求的权限。只需将它们放在清单中(通过 <uses-permission>
元素)就足够了。
只有保护级别为 dangerous
的权限才需要在运行时请求 - this table 列出了这些权限。 INTERNET
和 NFC
是 normal
权限,而不是 dangerous
。