关于使用Environment.getExternalStorageDirectory().listFiles()或file.listFiles返回null值问题
发现问题
看视频学教程的时候,可能老师在很早的时候就有说对文件读写操作的时候需要添加读写权限,但是被当成耳边风了,所以饶了那么一大圈。所以现在来为那些采坑的同学提供解决方案 本文参考:点击我看参考博客
话不多说,解决问题
在“AndroidManifest.xml”中的“manifest”节点添加以下代码
<
uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE” />
<
uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE” />
如果你的手机或模拟器是6.0以上的需要动态申请权限。完整的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取读写权限
getPermission();
}
//获取权限
private void getPermission(){
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_PERMISSION_CODE);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_PERMISSION_CODE) {
for (int i = 0; i < permissions.length; i++) {
Log.i("MainActivity", "申请的权限为:" + permissions[i] + ",申请结果:" + grantResults[i]);
}
}
}
如果添加后还是获取的null,那就把软件卸掉然后重写测试。第一次写博客,找了很久的答案,忍不住写博客来帮助一起掉坑的同学,希望不要喷我,谢谢。