从其他应用程序启动Facebook应用程序

时间:2010-11-16 05:37:59

标签: android

如何在Android中的应用程序中启动Facebook应用程序?

5 个答案:

答案 0 :(得分:66)

答案 1 :(得分:46)

要启动默认的启动器活动:

Intent intent = new Intent("android.intent.category.LAUNCHER");
intent.setClassName("com.facebook.katana", "com.facebook.katana.LoginActivity");
startActivity(intent);

我做了一些研究,因为我想找到它:)。我找到了一些方法,可以轻松地开始不同的活动。但我不能保证这会在facebook升级后起作用。我用我当前的Facebook应用程序测试它,它的工作原理。至少我用“ad start shell”用“am start .....”测试了它。

基本是:

String uri = "facebook://facebook.com/inbox";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);

未检查facebook.com部分。你甚至可以输入:“facebook://gugus.com/inbox”具有相同的效果。

如何在adb中执行此操作。

1. Start adb shell through console: "adb shell"
2. run: "am start -a android.intent.action.VIEW -d facebook://facebook.com/inbox"

这将启动收件箱活动。 这里有一些Uris的例子。我认为他们能说出自己的所作所为。

facebook://facebook.com/inbox
facebook://facebook.com/info?user=544410940     (id of the user. "patrick.boos" won't work)
facebook://facebook.com/wall
facebook://facebook.com/wall?user=544410940   (will only show the info if you have added it as friend. otherwise redirects to another activity)
facebook://facebook.com/notifications
facebook://facebook.com/photos
facebook://facebook.com/album
facebook://facebook.com/photo
facebook://facebook.com/newsfeed

你可以给某些uris提供additianl参数,但我没有时间浏览这些活动的所有代码。

我是怎么做到的?看看apktool。

答案 2 :(得分:9)

如果有人想直接打开照片

public Intent getOpenFacebookIntent(String pId) {
    try {
        activity.getPackageManager().getPackageInfo("com.facebook.katana", 0);
        return new Intent(Intent.ACTION_VIEW, Uri.parse("facebook:/photos?album=0&photo=" + pId + "&user=" + ownerId));
    } catch (Exception e) {
        return new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/"));
    }
}

startActivity(getOpenFacebookIntent(pid));

其中ownerId是上传此图片的用户的Facebook id,而pidPhotoId

享受:))

答案 3 :(得分:1)

只有当您触发的Intent操作与您要启动的其他应用程序的intent过滤器匹配时,才能在您的Android应用程序中启动另一个应用程序。

正如@patrick演示的那样,将facebook.apk下载到模拟器并尝试通过adb shell命令运行它。它工作正常..

将Intent过滤器和数据作为Uri传递

答案 4 :(得分:0)

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/groups/14531755***6215/")));

这将直接在fb应用程序中打开ID为 14531755 *** 6215 的Facebook组