我无法读取或写入我的Android设备。对同一主题提出了类似的问题(我已经实现了代码),但它们似乎都崩溃了我的应用程序。
Button btnUpload = (Button) findViewById(R.id.btnUpload);
File created = new File(Environment.getExternalStorageDirectory().getPath()
+ File.separator + "MyNewFolder" + File.separator + "created");
if (created.isDirectory()) {
File[] contents = created.listFiles();
//Should not trigger as directory check is in place
if (contents == null) { //<--not adding this section causes a crash
btnUpload.setEnabled(false);
}
//Check to see if the number of files is 0
else if (contents.length == 0) {
btnUpload.setEnabled(false);
}
//All checks pass. Enable button
else {
btnUpload.setEnabled(true);
}
}
答案 0 :(得分:0)
非常感谢Mike和Commonwares。
摘要:除了Manifest文件中的权限外,我们还需要在运行时检查权限(如果不存在则请求它们)。问题在于API级别23.
根据一些阅读添加了两行代码。不是最好的或遵循所有最佳编码实践,而是快速而肮脏的解决方案,因此请相应地进行修改。
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
我已将此添加到我的主要活动的开头,以便我在其余时间获得权限及其设置。