Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓5 SD卡标签_Android - Fatal编程技术网

Android 安卓5 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(

当我发送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(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