aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/utils/ProcessUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/utils/ProcessUtils.java')
-rw-r--r--main/src/cgeo/geocaching/utils/ProcessUtils.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/utils/ProcessUtils.java b/main/src/cgeo/geocaching/utils/ProcessUtils.java
index 85cedc5..3345ff1 100644
--- a/main/src/cgeo/geocaching/utils/ProcessUtils.java
+++ b/main/src/cgeo/geocaching/utils/ProcessUtils.java
@@ -2,9 +2,12 @@ package cgeo.geocaching.utils;
import cgeo.geocaching.cgeoapplication;
+import org.apache.commons.collections.CollectionUtils;
+
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import java.util.List;
@@ -16,7 +19,7 @@ public final class ProcessUtils {
/**
* Preferred method to detect the availability of an external app
- *
+ *
* @param packageName
* @return
*/
@@ -28,7 +31,7 @@ public final class ProcessUtils {
* Checks whether a launch intent is available or if the package is just installed
* This function is relatively costly, so if you know that the package in question has
* a launch intent, use isLaunchable() instead.
- *
+ *
* @param packageName
* @return
*/
@@ -65,4 +68,12 @@ public final class ProcessUtils {
return null;
}
}
+
+ public static boolean isIntentAvailable(final String intent) {
+ final PackageManager packageManager = cgeoapplication.getInstance().getPackageManager();
+ final List<ResolveInfo> list = packageManager.queryIntentActivities(
+ new Intent(intent), PackageManager.MATCH_DEFAULT_ONLY);
+
+ return CollectionUtils.isNotEmpty(list);
+ }
}