1. 程式人生 > >Android 程式碼開啟系統自帶的檔案管理器(不是單純的獲取檔案路徑)

Android 程式碼開啟系統自帶的檔案管理器(不是單純的獲取檔案路徑)

網上搜索的辦法基本上都是下面這種:

 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。