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?
6 answers
com.facebook.android
jest nazwą pakietu dla Facebook SDK. Pakiet aplikacji Facebook to com.facebook.katana
.
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");
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
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;
}
}
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
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
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