17

我能够启动 Twitter 应用程序(如果它存在于手机上),但我找不到如何自动显示特定用户配置文件。

像这样的东西适用于 Google+:

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

这是Facebook的方式:

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

启动 Twitter 应用程序时应该有相同的解决方案吗?

Intent intent = getPackageManager().getLaunchIntentForPackage("com.twitter.android");
intent.putExtra("WHAT_TO_PUT_HERE?", "USER_ID");
startActivity(intent);
4

3 回答 3

35
try {
   startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?screen_name=" + twitter_user_name)));
}catch (Exception e) {
   startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/#!/" + twitter_user_name)));
}

这适用于新的 Twitter 应用程序。@Baptiste Costa 提供的解决方案对我不起作用。

于 2013-09-09T09:41:53.043 回答
17
try
{
    // Check if the Twitter app is installed on the phone.
    getPackageManager().getPackageInfo("com.twitter.android", 0);

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setClassName("com.twitter.android", "com.twitter.android.ProfileActivity");
    // Don't forget to put the "L" at the end of the id.
    intent.putExtra("user_id", 01234567L);
    startActivity(intent);
}
catch (NameNotFoundException e)
{
    // If Twitter app is not installed, start browser.
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/AndroTesteur")));
}
于 2012-08-20T14:06:15.283 回答
2

这是一个非常古老的问题,我想对此有所了解。如果失败,我已经使用用户 ID 或用户名完成了它。

Intent intent;
try {
    // Check if the Twitter app is installed on the phone.
    context.getPackageManager().getPackageInfo("com.twitter.android", 0);

    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?user_id=813679215195410432"));
} catch (Exception e) {
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/LynxMods"));
}
context.startActivity(intent);
于 2018-12-17T04:35:06.100 回答