1
が存在する場合、私は、それはそれ以外のアプリにしてブラウザにインストールされます場合はFBネイティブアプリでの通知で受信したリンクを開いて、このコードを使用していますチェック:アンドロイド - Facebookアプリが戻って間違った結果
PackageManager packageManager = context.getPackageManager();
try {
packageManager.getPackageInfo("com.facebook.katana", PackageManager.GET_ACTIVITIES);
return context.getString(R.string.fb_app_prefix) + fb_url;
} catch (PackageManager.NameNotFoundException e) {
return context.getString(R.string.fb_site_prefix) + fb_url; //normal web mUrl
}
をそれが動作します(エミュレータを含む)ほとんどのデバイスでは、アプリケーションがインストールされていないにもかかわらずエラーが発生することはありません。
私のコードで何が問題になっていますか?
は私が持っているすべてのリンクのために、次のコードを追加することができますが、わからないことは「健康」です:
Intent testIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(fb_app_url));
if (testIntent.resolveActivity(packageManager) != null) {
return fb_app_url;
}
違いは何ですか? this - PackageManager.GET_META_DATA? – Rani
差異: GET_ACTIVITIES PackageInfoフラグ:アクティビティのパッケージ内のアクティビティに関する情報を返します。 GET_META_DATA ComponentInfoフラグ:metaDataデータを返します。コンポーネントに関連付けられたバンドル。 はい、それは私のために働く。 –
私はそれをチェックアウトします。ありがとう – Rani