网上搜索的办法基本上都是下面这种:
public void openFileExplorer(){
Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
//系统调用Action属性
intent.setType("*/*");
//设置文件类型
intent.addCategory(Intent.CATEGORY_OPENABLE);
// 添加Category属性
try{
startActivity(intent);
}catch(Exception e){
Toast.makeText(this, "没有正确打开文件管理器", Toast.LENGTH_SHORT).show();
}
}
以上的方法打开文件浏览器,只能获取文件的路径。然后返回项目之后,在onActivityResult()方法中进行操作。
因此我尝试直接打开系统的文件管理app。在Android7.0上,文件管理器是一个叫做“Downloads”的应用。
要打开一个App,必须知道它的包名。我们可以通过adb命令获取它的包名:
- 1.在Android设备(7.0)上打开需要获取包名的App。
- 2.执行adb命令: adb shell dumpsys activity activities > temp.txt。
- 3.在电脑C盘的user目录下打开temp.txt文件,就能查询到当前应用的包名。
通过以上操作我们获取了Downloads的包名:com.android.documentsui
public static void openOtherApp(Context context,String packagename) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packagename);
context.startActivity(intent);
}
使用如上方法即可打开系统自带的文件管理器Downloads。