从其他应用程序 - Android中打开Facebook,Twitter和Google Plus应用程序页面

时间:2012-07-04 11:02:46

标签: android facebook twitter android-intent google-plus

我正在开发一个应用程序,我需要整合不同社交网络的社交功能:Facebook,Twitter,Google +。

目前,在Facebook和Twitter中,我认识到用户是否有本机应用程序,如果他有,我打开它并向他显示我的粉丝页面。

对于Twitter,我使用下一个代码:

try {

  Intent intent = new Intent(Intent.ACTION_VIEW,
        Uri.parse("twitter://user?screen_name=[user_name]"));
    startActivity(intent);

    }catch (Exception e) {
        startActivity(new Intent(Intent.ACTION_VIEW,
             Uri.parse("https://twitter.com/#!/[user_name]"))); 
    } 

对于Facebook下一个代码:

try{

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/" + PROFILE_FACEBOOK_APP_ID));
startActivity(intent);

}catch(Exception e){

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/UserNamePage")));
}

现在我想为Google+做同样的事情。我看到我可以使用下一个Url https://plus.google.com/MY_PAGE_ID/浏览我的粉丝页面,但它一直在问我是否要使用Google+应用程序或浏览器打开它,我希望他能用应用程序打开它自动,无需询问用户。

有一种简单的方法吗? 感谢。

3 个答案:

答案 0 :(得分:12)

找到解决方案:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.google.android.apps.plus",
"com.google.android.apps.plus.phone.UrlGatewayActivity");
intent.putExtra("customAppUri", "FAN_PAGE_ID");
startActivity(intent);

答案 1 :(得分:7)

我认为这是非常安全的,因为我们不需要指定组件,只需要指定google + app包名称:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://plus.google.com/[Google+ID]/"));
intent.setPackage("com.google.android.apps.plus"); // don't open the browser, make sure it opens in Google+ app
startActivity(intent);

答案 2 :(得分:2)

如果google plus需要Intent中的其他信息,但是作为常规Android解决方案,您可以明确设置目标。您需要google +的包名。

此处有更多信息:http://developer.android.com/reference/android/content/Intent.html#setPackage%28java.lang.String%29

例如:

Intent.setPackage("com.google.android.apps.plus"); //Don't know the exact package name