我正在开发一个应用程序,我需要整合不同社交网络的社交功能: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+应用程序或浏览器打开它,我希望他能用应用程序打开它自动,无需询问用户。
有一种简单的方法吗? 感谢。
答案 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