Android,android官網
判斷intent-filter的特定的action
本文地址:http://blog.csdn.net/caroline_wendy
如果使用startIntent()啟動Activity時,如果intent-filter中未包含此action,則會異常崩潰;在使用時,可以先進行檢查:
// 判斷是否安裝【健康工具】 private boolean isInstallChunyuTools() { Intent cardioFaceIntent = new Intent(EtonConstants.CHUNYU_CARDIO_FACE_ACTION); Intent pedometerIntent = new Intent(EtonConstants.CHUNYU_PEDOMETER_ACTION); PackageManager pm = getPackageManager(); List<ResolveInfo> cardioFaceInfos = pm.queryIntentActivities(cardioFaceIntent, PackageManager.GET_RESOLVED_FILTER); List<ResolveInfo> pedometerInfos = pm.queryIntentActivities(pedometerIntent, PackageManager.GET_RESOLVED_FILTER); return cardioFaceInfos.isEmpty() || pedometerInfos.isEmpty(); }
參考:http://stackoverflow.com/questions/20809237/android-search-installed-package-with-intent-filter
heck out
queryIntentActivities()So you create an intent with the correct filter matching discriminators on it.
Intent intent = new Intent("my_awesome.package.hasa.custom.ACTION!");intent.addCategory("typingisfunfunfun");intent.setData(Uri.parse("data://foo/bar"));PackageManager pm = getPackageManager();List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);if(resolveInfo.isEmpty()) { Log.i("NoneResolved", "No Activities");} else { Log.i("Resolved!", "There are activities" + resolveInfos);}