Jak sprawdzić, czy Facebook jest zainstalowany Android

Modyfikuję moją aplikację, aby móc złapać, jeśli użytkownik próbuje opublikować bez zainstalowanej aplikacji facebook (wymagana dla SSO). Oto kod, którego używam:

try{
    ApplicationInfo info = getPackageManager().
            getApplicationInfo("com.facebook.android", 0 );
    return true;
} catch( PackageManager.NameNotFoundException e ){
    return false;
}
Problem w tym, że zawsze łapie błąd. Zgodnie z pytaniem tutaj, muszę poprosić o odpowiednie pozwolenie, ale nie wiem, o jakie uprawnienia muszę poprosić.

Czy mój problem to pozwolenie, czy coś innego?

Author: Community, 2011-07-15

6 answers

com.facebook.android jest nazwą pakietu dla Facebook SDK. Pakiet aplikacji Facebook to com.facebook.katana.

 96
Author: Torid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-15 18:24:56

Aby sprawdzić, czy aplikacja jest zainstalowana na Androidzie, użyj tej metody:

public static boolean isPackageInstalled(Context c, String targetPackage) {
    PackageManager pm = c.getPackageManager();
    try {
        PackageInfo info = pm.getPackageInfo(targetPackage, PackageManager.GET_META_DATA);
    } catch (NameNotFoundException e) {
        return false;
    }
    return true;
}

W Twoim przypadku użyj któregokolwiek z tych pakietów:

  • com.facebook.orka
  • com.facebook.katana
  • com.przykład.facebook
  • com.facebook.android
boolean hasPackage = isPackageInstalled(MainActivity.this, "com.facebook.katana");
 3
Author: N.Droid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-15 20:39:21

Napisz funkcję w narzędziach lub w dowolnym miejscu dla Ciebie.Ta funkcja pomoże Ci sprawdzić zainstalowaną aplikację lub nie.pozwól, że powiem, że to jest w narzędziach.java

public static boolean isAppInstalled(Context context, String packageName) {
        try {
            context.getPackageManager().getApplicationInfo(packageName, 0);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
    }

Następnie wywołaj tę funkcję z dowolnego miejsca. na przykład, aby sprawdzić aplikację facebook

if(Utilities.isAppInstalled(getApplicationContext(), "com.facebook.katana")) {
                    // Do something
                }else {
                    Intent i = new Intent(android.content.Intent.ACTION_VIEW);
                    i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.facebook.katana"));
                    startActivity(i);
                }

Enjoy

 1
Author: yubaraj poudel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-16 03:54:45
 if (isAppInstalled()) {
        Toast.makeText(getApplicationContext(), "facebook app already installed", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(getApplicationContext(), "facebook app not installing", Toast.LENGTH_SHORT).show();
    }



public boolean isAppInstalled() {
            try {
                getApplicationContext().getPackageManager().getApplicationInfo("com.facebook.katana", 0);
                return true;
            } catch (PackageManager.NameNotFoundException e) {
                return false;
            }
        }
 1
Author: Sanjay Mangaroliya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-23 10:30:46
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.facebook.katana"));
startActivity(i);

Ten kod zadziałał dla mnie

 0
Author: Avinash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-09 10:00:18

Najlepszym podejściem jest wybranie nazwy pakietu wraz z com.facebook ale i tak możesz używać następujących pakietów:

  • com.facebook.orka
  • com.facebook.katana
  • com.przykład.facebook
  • com.facebook.android
 0
Author: Abe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-09 16:54:14