Android uygulamamdan, resmi Facebook uygulamasındaki bir Facebook profiline bağlantı açmak istiyorum (tabii ki uygulama yüklüyse). iPhone için fb://
URL şeması mevcut, ancak aynı şeyi Android cihazımda denediğimde ActivityNotFoundException
hatası alıyorum.
Resmi Facebook uygulamasında koddan bir Facebook profili açma şansı var mı?
Bu, en son sürümde çalışır:
https://graph.facebook.com/
Kimliğinizi kopyalayın
Bu yöntemi kullanın:
public static Intent getOpenFacebookIntent(Context context) {
dene {
context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
return new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<id_here>"));
} catch (Exception e) {
return new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/<user_name_here>"));
}
}
Bu, kullanıcının yüklü olması halinde Facebook uygulamasını açacaktır. Aksi takdirde, Facebook'u tarayıcıda açacaktır.
DÜZENLEME: 11.0.0.11.23 (3002850) sürümünden beri Facebook Uygulaması artık bu yolu desteklemiyor, başka bir yol var, Jared Rummler'in aşağıdaki yanıtını kontrol edin.
bu, bunu yapmak için en basit koddur
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<ResolveInfo> 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);
}
Bu FrAndroid forumunda Pierre87 tarafından tersine mühendislikle geliştirilmiş, ancak bunu açıklayan resmi bir yer bulamıyorum, bu nedenle belgelenmemiş ve her an çalışmayı durdurma olasılığı varmış gibi davranılması gerekiyor:
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);