在Android 6.0及以上版本中,必须通过运行时权限来请求WRITE_EXTERNAL_STORAGE权限。以下是一种实现WRITE_EXTERNAL_STORAGE请求的示例代码:
1.在AndroidManifest.xml文件中添加以下代码:
2.在调用需要访问外部存储器的代码之前,在Activity的onCreate()方法中添加以下代码:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
}
3.重写onRequestPermissionsResult()方法:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if(requestCode == 1){
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
//访问外部存储器的代码
}else{
//无法访问外部存储器时的代码
}
}
}
这样,我们就可以在运行时请求WRITE_EXTERNAL_STORAGE权限并在获得授权后使用外部存储器。