質問で説明されている解決策は機能しなくなります(この質問の編集で、理由の詳細を確認できます)。Facebookアプリの新しいバージョンは、これらの種類のインテントをサポートしなくなりました。ここでバグレポートを参照してください
新しい解決策は、iPhoneスキームメカニズムを使用することです(はい、FacebookはAndroidの暗黙のインテントメカニズムではなく、AndroidでiPhoneメカニズムをサポートすることを決定しました)。
したがって、ユーザープロファイルを使用してFacebookアプリを開くには、次のことを行う必要があります。
String facebookScheme = "fb://profile/" + facebookId;
Intent facebookIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(facebookScheme));
startActivity(facebookIntent);
他のアクションを探している場合は、利用可能なすべてのアクションについて次のページを使用できます(ただし、これに関するFacebookの公式出版物が見つからなかったため、テストする必要があります)
編集
質問のこの部分では、問題の性質と解決策について詳しく説明していますが、問題を解決するには上記の詳細で十分です。
Facebookアプリの新しいバージョンでは、マニフェストファイルが変更されました。今日の活動
com.facebook.katana.ProfileTabHostActivity
マニフェストに次のように記述されています。
<activity android:theme="@style/Theme.Facebook"
android:name="com.facebook.katana.ProfileTabHostActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout"
android:windowSoftInputMode="adjustPan" />
このアクティビティにはintent-filterがなくなったため、 android:exportedのデフォルト値はfalseになりました。以前のバージョンでは、intent-filterがあり、デフォルト値はtrueでした(ここでそれについて読むことを歓迎します)エクスポートされた値の詳細について、この回答に感謝します。
ただし、新しいバージョンには次のアクティビティがあります。
<activity android:name="com.facebook.katana.IntentUriHandler">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="facebook" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="fb" />
</intent-filter>
</activity>
そしてここで、彼らがfbとfacebookのスキームをサポートしていることがわかります。