Android應用中如何啟動另一個應用

來源:互聯網
上載者:User

標籤:

Android中 一個應用啟動另外一個應用一般有2種情況,

   被啟動應用的包名已知 和  未知兩種情況:

1  被啟動應用的包名已知:

  

   /**啟動另外應用的代碼,其中被啟動的應用的包名為packageName,        應用的入口為packageName.MainActivity,      此方法的2個應用的AndroidManifest.xml檔案都不需要修改     **/       Intent intent = new Intent();       intent.setComponent(new ComponentName("packageName","packageName.MainActivity"));       intent.setAction(Intent.ACTION_VIEW);       startActivity(intent);    

 2  被啟動應用的包名未知: 

  這種情況雖然是不知道應用的包名,但是最終啟動應用還是通過包名啟動。所以要通過一種方法獲得手機內應用的包名。 
手機內分系統預裝應用和非系統自己安裝的應用,可以通過下邊的方法判斷,返回一個包名的List集合: 

 public List<PackageInfo> getAllApps() {             List<PackageInfo> apps = new ArrayList<PackageInfo>();             PackageManager packageManager = this.getPackageManager();             //擷取手機內所有應用             List<PackageInfo> paklist = packageManager.getInstalledPackages(0);                 for (int i = 0; i < paklist.size(); i++) {                 PackageInfo pak = (PackageInfo) paklist.get(i);                 //判斷是否為非系統預裝的應用  (大於0為系統預裝應用,小於等於0為非系統應用)               if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) {                     apps.add(pak);                 }             }             return apps;     }   

  由於這是個包名的List集合:我們仍不能確定我們要啟動的應用是哪個,沒關係,我們還可以進一步擷取應用程式名稱。

 public String[] launchApp() {           PackageManager packageManager = this.getPackageManager();           List<PackageInfo> packages = getAllApps();         str3=new String[packages.size()];        PackageInfo pa = null;           for(int i=0;i<packages.size();i++){               pa = packages.get(i);               //獲得應用程式名稱。這裡的str3是我定義的一個數組,承載應用程式名稱。            str3[i] = packageManager.getApplicationLabel(pa.applicationInfo).toString();             }     return str3;    }   

  最後可以根據我們要啟動的應用程式名稱和String[]組數的每一項做判斷。若為true,則啟動應用,若為fause,則進行下一項判斷。

 

Android應用中如何啟動另一個應用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.