iT邦幫忙

DAY 13
0

菜逼八的 Android 開發 30天系列 第 13

【菜逼八學Android】這個APP有安裝嗎?叫程式告訴你~

  • 分享至 

  • xImage
  •  

哈囉各位大家好,本來預計要跟大家分享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");

這樣就完成啦!感謝大家的閱讀,我們明天見啦~~


上一篇
【菜逼八學Android】默默辛苦工作的Service(2)
下一篇
【菜逼八學Android】什麼?主線程不能超過5秒!(1)
系列文
菜逼八的 Android 開發 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言