gabi906
gabi906

Reputation: 384

Checking if Facebook is installed on Android

How can I check that? Do i have to use PackageManager? Thank you :D

Upvotes: 0

Views: 2119

Answers (2)

Araw
Araw

Reputation: 2478

I check it this way (check if the returned value is unequal to null):

public static Intent findFacebookClient(Context con)
{
    final String[] FacebookApps = {"com.facebook.android", "com.facebook.katana"};
    Intent facebookIntent = new Intent();
    facebookIntent.setType("text/plain");
    final PackageManager packageManager = con.getPackageManager();
    List<ResolveInfo> list = packageManager.queryIntentActivities(facebookIntent, PackageManager.MATCH_DEFAULT_ONLY);

    for (int i = 0; i < FacebookApps.length; i++)
    {
        for (ResolveInfo resolveInfo : list)
        {
            String p = resolveInfo.activityInfo.packageName;
            if (p != null && p.startsWith(FacebookApps[i]))
            {
                facebookIntent.setPackage(p);
                return facebookIntent;
            }
        }
    }
    return null;
}

Upvotes: 2

Carnal
Carnal

Reputation: 22064

final PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm
            .getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
    Log.d(TAG, "Installed package : " + packageInfo.packageName);
}

Then you can check if packageInfo.packageName is equal to some string which contains the package name of that application.

Upvotes: 1

Related Questions