閱讀104 返回首頁    go 微軟


Android中如何在應用A中啟動或安裝應用B

 

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

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

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

/**
 * 判斷是否安裝目標應用
 * @param packageName 目標應用安裝後的包名
 * @return 是否已安裝目標應用
 * @author zuolongsnail
 */
private boolean isInstallByread(String packageName) {
 return new File("/data/data/" + packageName).exists();
}

 

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

/**
 * 先判斷是否安裝,已安裝則啟動目標應用程序,否則先安裝
 * @param packageName 目標應用安裝後的包名
 * @param appPath 目標應用apk安裝文件所在的路徑
 * @author zuolongsnail
 */
private void launchApp(String packageName, String appPath) {
 // 啟動目標應用
 if (isInstallByread(packageName)) {
  // 獲取目標應用安裝包的Intent
  Intent intent = getPackageManager().getLaunchIntentForPackage(
    packageName);
  startActivity(intent);
 }
 // 安裝目標應用
 else {
  Intent intent = new Intent();
  // 設置目標應用安裝包路徑
  intent.setDataAndType(Uri.fromFile(new File(appPath)),
    "application/vnd.android.package-archive");
  startActivity(intent);
 }
}

 

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

 

最後更新:2017-04-02 06:51:56

  上一篇:go UML應用開發詳解--視頻
  下一篇:go [usaco]4.2.1 最大流問題Drainage Ditches