有時候一個應用需要啟動另外一個應用來完成操作,比如在某些應用中打開鬧鐘,相機,日曆等等。

啟動或安裝相應的應用的方法:

Step1:判斷是否安裝目標應用。只要知道目標應用的安裝包名就可以通過判斷"/data/data/packagename"是否存在來實現。

 
1 /**

2 * 判斷是否安裝目標應用

3 * @param packageName 目標應用安裝後的包名

4 * @return 是否已安裝目標應用

5 * @author zuolongsnail

6 */

7 private boolean isInstallByread(String packageName) {

8 return new File("/data/data/" + packageName).exists();

9 }

Step2:目標應用已安裝則啟動,否則先安裝。

 
01 /**

02 * 先判斷是否安裝,已安裝則啟動目標應用程式,否則先安裝

03 * @param packageName 目標應用安裝後的包名

04 * @param appPath 目標應用apk安裝檔所在的路徑

05 * @author zuolongsnail

06 */

07 private void launchApp(String packageName, String appPath) {

08 // 啟動目標應用

09 if (isInstallByread(packageName)) {

10 // 獲取目標應用安裝包的Intent

11 Intent intent = getPackageManager().getLaunchIntentForPackage(

12 packageName);

13 startActivity(intent);

14 }

15 // 安裝目標應用

16 else {

17 Intent intent = new Intent();

18 // 設置目標應用安裝包路徑

19 intent.setDataAndType(Uri.fromFile(new File(appPath)),

20 "application/vnd.android.package-archive");

21 startActivity(intent);

22 }

23 }

一點補充:

1.我暫時還不知道啟動目標應用需要什麼許可權,好像只要目標應用的啟動Activity配置了action就行。
2.目標應用安裝後如何自動啟動呢,這個我還沒實現,我試著用Handler但是沒實現,有哪位知道請不吝賜教。

文章出處:HTTP://blog.csdn.net/jdsjlzx/article/details/6776650
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()