Cómo comprobar si Facebook está instalado Android

Estoy modificando mi aplicación para poder capturar si un usuario intenta publicar sin tener instalada la aplicación de Facebook (necesaria para SSO). Aquí está el código que estoy usando:

try{ ApplicationInfo info = getPackageManager(). getApplicationInfo("com.facebook.android", 0 ); return true; } catch( PackageManager.NameNotFoundException e ){ return false; } 

El problema es que siempre se está detectando un error. De acuerdo con la pregunta aquí , necesito solicitar el permiso apropiado, pero no sé qué permisos necesito solicitar.

¿Es mi problema un permiso o algo más?

6 Solutions collect form web for “Cómo comprobar si Facebook está instalado Android”

Com.facebook.android es el nombre del paquete para el SDK de Facebook. La aplicación de Facebook es com.facebook.katana.

Para comprobar cualquier aplicación instalada en android o no use este método:

 public static boolean isPackageExisted(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; } 

En su caso utilice cualquiera de los paquetes

  • Com.facebook.orca
  • Com.facebook.katana
  • Com.example.facebook
  • Com.facebook.android

Boolean hasPackage = isPackageExisted (MainActivity.this, "com.facebook.katana")

Espero que te ayude.

El mejor acercamiento es elegir el nombre del paquete incluyendo com.facebook pero de todos modos usted puede utilizar paquetes siguientes:

  • Com.facebook.orca
  • Com.facebook.katana
  • Com.example.facebook
  • Com.facebook.android

Escribir la función en utilidades o cualquier lugar traje para you.This funcionará le ayudará a comprobar cualquier aplicación instalada o not.let me decir por mí mismo que está en Utilities.java

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

Luego, llame a esta función desde cualquier lugar. Por ejemplo, para comprobar la aplicación 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); } 

Disfrutar

  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; } } 
 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); 

Este código funcionó para mí

  • Obtener el nombre de paquete de la aplicación de primer plano en Marshmallow retrasado en 3 segundos
  • ¿Hay algunos límites en el paquete android?
  • ¿Cómo obtener el nombre del paquete desde cualquier lugar?
  • Android no está recibiendo Intent ACTION_PACKAGE_REMOVED en el paquete eliminado
  • Eclipse Java - nombre de paquete no válido - Palabras reservadas en el nombre del paquete
  • Android: Incluyendo varios paquetes de Java para mostrar
  • Enviar arrays con Intent.putExtra
  • Ejemplo simple para Intent y Bundle
  • Parcelable, ¿qué es newArray para?
  • ¿Qué es un "lote" en una aplicación de Android?
  • Choques de nombres de paquetes con clase del mismo error de nombre en android studio
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.