Android 6.0引入了运行时权限机制,对于一些敏感的权限,如读写外部存储(SD卡)权限,需要在运行时动态申请。如果在应用中没有正确处理权限申请逻辑,可能会导致SD卡目录创建失败的问题,即使应用已经被授予了相应的权限。
解决这个问题的方法是在应用中正确处理权限申请逻辑。以下是一般的解决步骤:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// 如果没有权限,则动态申请权限
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_CODE);
} else {
// 如果已经有权限,则进行SD卡目录创建等操作
// ...
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限申请成功,进行SD卡目录创建等操作
// ...
} else {
// 权限申请被拒绝,需要给出相应的提示或处理逻辑
// ...
}
}
}
通过正确处理权限申请逻辑,可以确保在Android 6.0及以上版本中,应用能够正确创建SD卡目录。
关于Android开发、权限申请和SD卡目录创建等相关知识,可以参考腾讯云的文档和产品:
领取专属 10元无门槛券
手把手带您无忧上云