Android如何触发intent打开指定目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android如何触发intent打开指定目录相关的知识,希望对你有一定的参考价值。

想用自带的文件管理器打开指定目录,然后点击文件返回其路径给调用的activity。
即使设置intent.setType("*/*")还是调用不了系统自带的文件管理器。

Intent intentShowFile = new Intent(Intent.ACTION_GET_CONTENT);
intentShowFile.setType("*/*");
intentShowFile.addCategory(Intent.CATEGORY_OPENABLE);
startActivity(intentShowFile);

系统一般自带文件管理器,但是不清楚如何调用.android原生的文件管理器的Activity名是什么?

参考技术A Android触发intent打开指定目录的步骤:
1、android系统内置了很多应用,包括电话拨号,短信,浏览器等,这里创建一个简单的Android程序,调用内置的浏览器打开指定的地址。
2、对应的layout xml为:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/btnGo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="46dp"
android:text="@string/btnTitle_go" />
<EditText
android:id="@+id/txtUri"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/btnGo"
android:layout_alignBottom="@+id/btnGo"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/btnGo"
android:ems="10"
android:text="http://junqilian.cnblogs.com" >
<requestFocus />
</EditText>
</RelativeLayout>
3、Java代码实现如下,主要是给EditText添加一个OnKeyListener,处理在editText里面按回车键,给button添加一个onClickListener,触发到OpenBroswer函数,通过intent打开内置的浏览器。
参考技术B 这个就像打开图库一样的。你可以去找相关源码。。。startactivityforresult

Android 的文件资源管理器 Intent 的起始目录

【中文标题】Android 的文件资源管理器 Intent 的起始目录【英文标题】:start directory of a file explorer Intent for Android 【发布时间】:2018-10-06 18:02:20 【问题描述】:

在指定目录中按 Intent 启动文件资源管理器的正确方法是什么?

下面的代码 sn-p 工作正常,只是它从错误的目录开始。

所需的起点是“selectedUri”

 val selectedUri = Uri.parse(externalStorage.toString() + "DCIM/Camera/")
 val intent= Intent(Intent.ACTION_GET_CONTENT).apply
         addCategory(Intent.CATEGORY_OPENABLE)
         type = "image/*"
         addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
 

【问题讨论】:

【参考方案1】:

您忘记设置意图数据

val selectedUri = Uri.parse(externalStorage.toString() + "DCIM/Camera/")
val intent= Intent(Intent.ACTION_GET_CONTENT).apply
         addCategory(Intent.CATEGORY_OPENABLE)
         data = selectedUri
         type = "image/*"
         addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
 

【讨论】:

是的,我同意你的看法,但它不适用于我的三星 XCover

以上是关于Android如何触发intent打开指定目录的主要内容,如果未能解决你的问题,请参考以下文章

android怎么调用系统自带的图库打开指定目录的相册

如何指定Android中的浏览器跳转界面?

Android网页打开指定App

如何在Android中调用浏览器打开网页

(转载)Android理解:显式和隐式Intent

如何在 INTENT_ACTION_STILL_IMAGE_CAMERA 中为新照片指定目录