da minha aplicação Android, gostaria de abrir um link para um perfil do Facebook na aplicação oficial do Facebook (se a aplicação estiver instalada, é claro). Para o iPhone, existe o esquema fb://' URL, mas tentar o mesmo no meu dispositivo Android lança um
ActivityNotFoundException'.
Há alguma hipótese de abrir um perfil do Facebook na aplicação oficial do Facebook a partir do código?
Isto funciona com a versão mais recente:
Ir para https://graph.facebook.com/
Copie a sua identificação
Utilizar este método:
public static Intent getOpenFacebookIntent(Contexto) {
tente {
context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<id_here>")));
} catch (Excepção e) {
devolver nova intenção(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/<user_name_here>")));
}
}
Isto abrirá a aplicação do Facebook se o utilizador a tiver instalada. Caso contrário, abrirá o Facebook no navegador.
EDIT: desde a versão 11.0.0.11.23 (3002850) a aplicação Facebook App já não suporta esta forma, lá's outra forma, verifique a resposta abaixo de Jared Rummler.
este é o código mais simples para o fazer
public final void launchFacebook() {
final String urlFb = "fb://page/"+yourpageid;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(urlFb));
// If a Facebook app is installed, use it. Otherwise, launch
// a browser
final PackageManager packageManager = getPackageManager();
List<ResolveInfo> list =
packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() == 0) {
final String urlBrowser = "https://www.facebook.com/pages/"+pageid;
intent.setData(Uri.parse(urlBrowser));
}
startActivity(intent);
}
Isto tem sido concebido ao contrário por Pierre87 no fórum FrAndroid, mas eu posso'não encontro nenhum funcionário que o descreva, por isso ele's tem de ser tratado como indocumentado e susceptível de parar de trabalhar a qualquer momento:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity");
intent.putExtra("extra_user_id", "123456789l");
this.startActivity(intent);