Open facebook page from android app (in facebook version > v11)

I used to open my facebook page from my app using the below code, but this does not work anymore starting facebook v11.0.0.11.23 released on June 21, 2014, any idea how to open the page in the new facebook app?
To note that it opens now the facebook app but without opening the specified page, it used to work just fine before the latest update

public void openFacebookPage() {
    Intent intent = null;
    try {
        context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<id here>"));
        //tried this also
        //intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/<id here>"));
    } catch (Exception e) {
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/<name here>"));
    }
    context.startActivity(intent);
}

  • Android in-app billing: what is the “developer payload” and how the “Buy” button works?
  • Android private content provider?
  • Android Replace “…” with ellipsis character
  • SQLite Android Database Cursor window allocation of 2048 kb failed
  • when is Snackbar isQueued () used? (How to queue the snackbar)
  • select a word on a tap in TextView/EditText
  • Debugging native code in android under eclipse fails
  • Upload new APK to Alpha - failed
  • Android sleep() without blocking UI
  • NullPointerException in FragmentManager
  • Android WebView inside ScrollView scrolls only scrollview
  • Create an Android GPS tracking application
  • One Solution collect form web for “Open facebook page from android app (in facebook version > v11)”

    In Facebook version 11.0.0.11.23 (3002850) fb://profile/ and fb://page/ are no longer supported. I decompiled the Facebook app and was able to come up with the following solution:

    String facebookUrl = "https://www.facebook.com/JRummyApps";
    try {
        int versionCode = getPackageManager().getPackageInfo("com.facebook.katana", 0).versionCode;
        if (versionCode >= 3002850) {
            Uri uri = Uri.parse("fb://facewebmodal/f?href=" + facebookUrl);
            startActivity(new Intent(Intent.ACTION_VIEW, uri));;
        } else {
            // open the Facebook app using the old method (fb://profile/id or fb://page/id)
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/336227679757310")));
        }
    } catch (PackageManager.NameNotFoundException e) {
        // Facebook is not installed. Open the browser
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookUrl)));
    }
    

    Edit: It has been some time and it looks like fb://profile and fb://page are no longer supported. Below is the method I have been using in production:

    /**
     * Intent to open the official Facebook app. If the Facebook app is not installed then the
     * default web browser will be used.</p>
     * 
     * Example usage:</p>
     * <code>newFacebookIntent(context.getPackageManager(), "https://www.facebook.com/JRummyApps");</code></p>
     * 
     * @param pm
     *            Instance of the {@link PackageManager}.
     * @param url
     *            The full URL to the Facebook page or profile.
     * @return An intent that will open the Facebook page/profile.
     */
    public static Intent newFacebookIntent(PackageManager pm, String url) {
        Uri uri;
        try {
            pm.getPackageInfo("com.facebook.katana", 0);
            // http://stackoverflow.com/a/24547437/1048340
            uri = Uri.parse("fb://facewebmodal/f?href=" + url);
        } catch (PackageManager.NameNotFoundException e) {
            uri = Uri.parse(url);
        }
        return new Intent(Intent.ACTION_VIEW, uri);
    }
    
    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.