从隐式意图返回 FilePath
Posted
技术标签:
【中文标题】从隐式意图返回 FilePath【英文标题】:Returning FilePath from Implicit-Intent 【发布时间】:2016-07-31 09:06:21 【问题描述】:要启动文件管理器应用程序以便用户选择他们想要打开的文件,我使用以下代码:
Intent pickFile = new Intent(Intent.ACTION_GET_CONTENT);
pickFile.setType("file/*");
pickFile.addCategory(Intent.CATEGORY_OPENABLE);
if (pickFile.resolveActivity(getPackageManager()) != null)
startActivityForResult(pickFile,FILE_REQUEST_CODE);
else
Toast.makeText(getApplicationContext(),"Did not start intent",Toast.LENGTH_SHORT).show();
return;
这很好用。但文件管理器会在根目录中打开。 对于用户来说,这需要点击太多才能获得所需的文件。
那么有没有办法从不同的文件夹而不是根目录启动 Intent?此外,android Developer Guide 似乎没有提供解决方案。
【问题讨论】:
【参考方案1】:这样试试
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath()
+ "/yourFolder/");
intent.setDataAndType(uri, "*/*");
startActivityForResult(Intent.createChooser(intent, "Open folder"),FILE_REQUEST_CODE);
【讨论】:
当我在“打开方式”对话框中选择“文件指挥官”时,应用程序只显示一个空屏幕(即使文件在那里)。但是,当手动导航到它时,它会显示出来,我将能够在我的 android 程序中打开它。这种行为的任何线索?以上是关于从隐式意图返回 FilePath的主要内容,如果未能解决你的问题,请参考以下文章