我按照简单的步骤一次请求多个权限,这是我的权限请求代码:
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()
}
}
}
}
当我启动应用程序时,我没有收到任何对话框来接受或拒绝权限,而只是举杯“授予的权限”,但是如果我在应用程序信息中查看权限,则看不到任何授予的权限。我做错了什么?有人可以帮我吗?
答案 0 :(得分:4)
INTERNET
和NFC
都不是在运行时需要请求的权限。仅将它们包含在清单中(通过<uses-permission>
元素)就足够了。
在运行时仅需要请求保护级别为dangerous
的权限-this table列出了那些权限。 INTERNET
和NFC
是normal
的权限,而不是dangerous
。