Un enfoque más reutilizable.
Esta es una funcionalidad que generalmente usamos en la mayoría de nuestras aplicaciones. Por lo tanto, aquí hay una pieza de código reutilizable para lograr esto.
(Similar a otras respuestas en términos de hechos. Publíquelo aquí solo para simplificar y hacer que la implementación sea reutilizable)
"fb://page/
no funciona con versiones más recientes de la aplicación FB. Debe usar fb://facewebmodal/f?href=
para versiones más nuevas. ( Como se menciona en otra respuesta aquí )
Este es un código de trabajo completo actualmente en vivo en una de mis aplicaciones:
public static String FACEBOOK_URL = "https://www.facebook.com/YourPageName";
public static String FACEBOOK_PAGE_ID = "YourPageName";
//method to get the right URL to use in the intent
public String getFacebookPageURL(Context context) {
PackageManager packageManager = context.getPackageManager();
try {
int versionCode = packageManager.getPackageInfo("com.facebook.katana", 0).versionCode;
if (versionCode >= 3002850) { //newer versions of fb app
return "fb://facewebmodal/f?href=" + FACEBOOK_URL;
} else { //older versions of fb app
return "fb://page/" + FACEBOOK_PAGE_ID;
}
} catch (PackageManager.NameNotFoundException e) {
return FACEBOOK_URL; //normal web url
}
}
Este método devolverá la URL correcta para la aplicación si está instalada o la URL web si la aplicación no está instalada.
Luego comienza una intención de la siguiente manera:
Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
String facebookUrl = getFacebookPageURL(this);
facebookIntent.setData(Uri.parse(facebookUrl));
startActivity(facebookIntent);
Eso es todo lo que necesitas.