Abrir página no Facebook a partir da aplicação Android?

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 umActivityNotFoundException'.

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:

  1. Ir para https://graph.facebook.com/ (https://graph.facebook.com/fsintents por exemplo)

  2. Copie a sua identificação

  3. 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/")));
        } catch (Excepção e) {
         devolver nova intenção(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/")));
        }
     }

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.

Comentários (20)

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 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);
    }
Comentários (2)

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);
Comentários (3)