哈囉各位大家好,本來預計要跟大家分享IntentService的部分,
但是今天在研究程式碼的時候一直沒有出現我預期的結果,
我想這個部份我可能必須再花時間研究一下,有成果之後再和大家分享嚕。
實在是很SORRY啊~~
那今天就來分享一個我在工作上遇到的問題,我們在製作APP時,
有時候會遇到需要開啟別的APP的狀況,譬如 Adobe Reader 等等,
我們在載入APP之前,必須要先判斷使用者是否有安裝這個APP,
這是一個非常簡單的程式碼~
我們要先取得Context裡面的PackageManager:用來讀取全域的Package的資訊,
再從PackageManager中,找到getPackageInfo:用來取得所有安裝在系統上的應用程式資訊,
這個getPackageInfo要給他兩個值,
第一個值是 packageName:完成的package名稱,像是com.google.apps.contacts,
第二個值是 flags:額外的選項標誌,會影響到回傳的內容,
因為這裡我們都不需要使用,所以就傳一個0進去。
/**
* 驗證 App是否存在
*
* @param context
* this
* @param appName
* App名稱(Ex.com.adobe.reader)
* @return
*/
public Boolean isExistApp(Context context, String appName) {
PackageInfo packageInfo;
try {
packageInfo = context.getPackageManager()
.getPackageInfo(appName, 0);
} catch (NameNotFoundException e) {
packageInfo = null;
e.printStackTrace();
}
if (packageInfo != null) {
return true;
} else {
return false;
}
}
取得app是否存在的結果,True存在/False不存在
Boolean result = this.isExistApp(this, "com.adobe.reader");
這樣就完成啦!感謝大家的閱讀,我們明天見啦~~