104
微軟
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