我需要帮助才能从我的应用程序获取可连接的存储卡。 我使用的android版本是Marshmellow。我使用下面的代码请求运行时权限。Android - 外部存储卡无法从我的应用程序写入
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_WRITE_STORAGE);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_WRITE_STORAGE) {
if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
Log.d(TAG, "Permission Granted");
}
}
}
我还检查了设置并授予了写入权限。 下面是两个存储位置,我有打电话
/storage/emulated/0 (Internal Memory, Writable)
/storage/9C33-6BBD (SDCard, Not writable, only readable)
我尝试下面的代码只是为了检查,如果我的记忆卡是可写
File file = new File("/storage/9C33-6BBD");
file.canWrite() // returns false every time
我不知道我错过了什么或做错了,其他应用程序似乎没有问题写入存储卡。
我也使用adb外壳,并能够在我的记忆卡中创建一个文件夹。
我还在我的Manifest文件中添加了下面的权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
如果您需要更多详细信息,请让我知道。并预先感谢帮助我。
[如何在外部SD卡上写入文件而不是在设备存储中?](http://stackoverflow.com/questions/38247666/how-to-write-a-file-in-external- SD卡和 - 未在设备存储) –