在其他应用程序 – Android的Twitter应用程序中打开页面

我正在寻找一些方式来启动Twitter应用程序,并从我的应用程序打开指定的页面,没有webview。 我在这里find了Facebook的解决scheme: 在指定的个人资料页面上打开Facebook应用程序

我需要类似的东西。

非常感谢你。

编辑我刚刚find一个解决scheme:

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]"))); } 

感谢您的意见。

这对我有效: twitter://user?user_id=id_num

要知道ID: http : //www.idfromuser.com/

根据fg.radigales的答案,这是我用来启动应用程序,如果可能的话,但回落到浏览器,否则:

 Intent intent = null; try { // get the Twitter app if possible this.getPackageManager().getPackageInfo("com.twitter.android", 0); intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USERID")); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } catch (Exception e) { // no Twitter app, revert to browser intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/PROFILENAME")); } this.startActivity(intent); 

UPDATE

添加了intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 解决Twitter在我的应用程序中打开而不是作为新的活动的问题。

我的答案build立在fg.radigales和Harry广泛接受的答案之上。 如果用户安装了Twitter,但已禁用(例如使用“应用隔离”),则此方法将不起作用。 该Twitter应用程序的意图将被选中,但它将无法处理它,因为它被禁用。

代替:

 getPackageManager().getPackageInfo("com.twitter.android", 0); intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=2343965036")); 

您可以使用以下内容来决定要执行的操作:

 PackageInfo info = getPackageManager().getPackageInfo("com.twitter.android", 0); if(info.applicationInfo.enabled) intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=2343965036")); else intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/wrkoutapp")); 

试试这个代码片段。 它会帮助你。

 //Checking If the app is installed, according to the package name Intent intent = new Intent(); intent.setType("text/plain"); intent.setAction(Intent.ACTION_SEND); final PackageManager packageManager = getPackageManager(); List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); for (ResolveInfo resolveInfo : list) { String packageName = resolveInfo.activityInfo.packageName; //In case that the app is installed, lunch it. if (packageName != null && packageName.equals("com.twitter.android")) { try { String formattedTwitterAddress = "twitter://user/" ; Intent browseTwitter = new Intent(Intent.ACTION_VIEW, Uri.parse(formattedTwitterAddress)); long twitterId = <Here is the place for the twitter id> browseTwitter.putExtra("user_id", twitterId); startActivity(browseTwitter); return; } catch (Exception e) { } } } //If it gets here it means that the twitter app is not installed. Therefor, lunch the browser. try { String twitterName = <Put the twitter name here> String formattedTwitterAddress = "http://twitter.com/" + twitterName; Intent browseTwitter = new Intent(Intent.ACTION_VIEW, Uri.parse(formattedTwitterAddress)); startActivity(browseTwitter); } catch (Exception e) { } 

在其他应用中使用Android在Twitter应用上打开页面2步骤:

1.只需粘贴下面的代码(在button点击或任何你需要的地方)

 Intent intent = null; try{ // Get Twitter app this.getPackageManager().getPackageInfo("com.twitter.android", 0); intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USER_ID")); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } catch () { // If no Twitter app found, open on browser intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/USERNAME")); } 

2. intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=USER_ID"));

要获取USER_ID,只需input用户名http://gettwitterid.com/并在那里获取Twitter用户ID

希望它会帮助:)