2016-04-26 143 views
-1

我想用android應用程序打開Facebook應用程序或Facebook的頁面,但我無法做到。它什麼都不做。如何用Android應用程序打開Facebook應用程序?

下面是代碼:

public Intent getOpenFacebookIntent(Context context){ 

    try{ 
     context.getPackageManager().getPackageInfo("com.facebook.FacebookSdk", 0); 
     return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/ID")); 
    } catch (Exception e) { 
     return new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/my_page")); 
    } 
} 

@Override 
public void onClick (View v){ 
    switch (v.getId()) { 
     case R.id.guardar: 
      startActivity(new Intent(this, getOpenFacebookIntent(this))); 
     break; 

有人能幫助我嗎?

回答

0

包名應該是這個。

details?id=com.facebook.katana 

恰克這一點。

context.getPackageManager().getPackageInfo("com.facebook.FacebookSdk", 0); 

了這一點。

context.getPackageManager().getPackageInfo("com.facebook.katana", 0); 

EDIT1:

Intent facebookIntent = new Intent(Intent.ACTION_VIEW); 
String facebookUrl = getOpenFacebookIntent(this); 
facebookIntent.setData(Uri.parse(facebookUrl)); 
startActivity(facebookIntent); 
+0

我應該在哪裏更改包的名稱? – AldoT

+0

更改包裹信息的行查看我的答案。 –

+0

好的,謝謝。另外,startActivity似乎有問題,你知道爲什麼嗎? @jaydroider – AldoT

0

電話:launchFacebook();在你的onClick()方法

public void launchFacebook() { 
    String urlFb = "fb://page/"+ID; 
    // replace ID with your id 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse(urlFb)); 

    PackageManager packageManager = getPackageManager(); 
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 
        PackageManager.MATCH_DEFAULT_ONLY); 
    if (list.size() == 0) { 
     final String urlBrowser = "https://www.facebook.com/"+my_page; 
     // relpace my_page with facebook profile page ending 
     intent.setData(Uri.parse(urlBrowser)); 
    } 
    startActivity(intent); 
} 
相關問題