我想在点击按钮时显示权限对话框。它在带有 READ_EXTERNAL_STORAGE 的 Android SDK 33 以下工作,但 SDK 33 不显示 READ_MEDIA_VIDEO(Min SDK 21 Max 33)
binding.imageView10.setOnClickListener {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED){
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
android.Manifest.permission.READ_EXTERNAL_STORAGE)) {
Toast.makeText(this@VideosActivity, " Permission required", Toast.LENGTH_LONG).show()
} else {
ActivityCompat.requestPermissions(this,
arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE),
GALLERY_REQUEST_CODE)
}
} else {
videoPickDialog()
}
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
if(ContextCompat.checkSelfPermission(this, READ_MEDIA_VIDEO) !=
PackageManager.PERMISSION_GRANTED){
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
READ_MEDIA_VIDEO)) {
Toast.makeText(this@VideosActivity, " Permission required", Toast.LENGTH_LONG).show()
} else {
ActivityCompat.requestPermissions(this,
arrayOf(READ_MEDIA_VIDEO),
GALLERY_REQUEST_CODE)
}
} else {
videoPickDialog()
}
}
}
这是我的清单
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28"/>