Android4.4(API级别19)引入了存储访问框架(SAF).SAF其中的部分功能就是通过其获取对外置sd卡的读写权限,从而操作外置sd卡.原文介绍连接,这里不对其进行复制粘贴,本帖直接讲述如何通过documentFile在获得SAF的后,在外置SD卡中读写数据.
Android 4.4提供了复杂的权限获取步骤,在android7.0时进行了简化.
StorageManager sm = (StorageManager) getSystemService(Context.STORAGE_SERVICE);
Listvolume = sm.getStorageVolumes();
int size = volume.size();
Log.i(TAG, "size: " + size);
for (int i = 1; i < size; i++) {
StorageVolume storageVolume = volume.get(i);
Intent intent = storageVolume.createAccessIntent(null);
startActivityForResult(intent, REQUEST_REQUEST_CODE);
}
上面的代码volume会返回内部存储和外部SD卡(我们所需要操作的卡,包括华为的NM卡),
使用 StorageManager 类获取适当的 StorageVolume 实例。然后,通过调用该实例的 StorageVolume.createAccessIntent() 方法创建一个 intent。使用此 int