Android 安卓5 SD卡标签
当我发送ACTION\u OPEN\u DOCUMENT\u TREE意图时,我可以看到某种SD卡标签。 我怎样才能在我的申请中得到它Android 安卓5 SD卡标签,android,Android,当我发送ACTION\u OPEN\u DOCUMENT\u TREE意图时,我可以看到某种SD卡标签。 我怎样才能在我的申请中得到它 您应该使用startActivityForResult方法发送此意向 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); intent.putExtra("android.content.extra.SHOW_ADVANCED", true); startActivityForResult(
您应该使用startActivityForResult方法发送此意向
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
intent.putExtra("android.content.extra.SHOW_ADVANCED", true);
startActivityForResult(intent, REQUEST_CODE);
之后,可以在onActivityResult方法中获取uuid
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri treeUri = intent.getData();
final int splitIndex = treeId.indexOf(':', 1);
final String uuid = treeId.substring(0, splitIndex);
}
uuid是您要查找的文本
如果需要获取所有存储的uuid,而不显示文档树选择器,则可以使用StorageManager。但是getVolumeList和getUuid方法是隐藏的,所以我使用反射来获取它
StorageManager mStorageManager = (android.os.storage.StorageManager) mContext
.getSystemService(Context.STORAGE_SERVICE);
Class<?> storageVolumeClazz = Class.forName("android.os.storage.StorageVolume");
Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList");
Method getUuid = storageVolumeClazz.getMethod("getUuid");
Object result = getVolumeList.invoke(mStorageManager);
final int length = Array.getLength(result);
for (int i = 0; i < length; i++) {
Object storageVolumeElement = Array.get(result, i);
String uuid = (String) getUuid.invoke(storageVolumeElement);
}
StorageManager mStorageManager=(android.os.storage.StorageManager)mContext
.getSystemService(Context.STORAGE\u服务);
Class storageVolumeClazz=Class.forName(“android.os.storage.StorageVolume”);
方法getVolumeList=mStorageManager.getClass().getMethod(“getVolumeList”);
方法getUuid=storageVolumeClazz.getMethod(“getUuid”);
对象结果=getVolumeList.invoke(MSTorAgerManager);
最终整数长度=Array.getLength(结果);
for(int i=0;i