Откройте приложение Twitter из другого приложения и загрузите страницу - PullRequest
7 голосов
/ 01 августа 2011

Есть ли способ открыть приложение Twitter из моего собственного приложения?

Например, у меня есть собственное приложение для Android, и я хочу открыть приложение Twitter с помощью Intent. Как я могу это сделать? Ответы с примером будут высоко оценены.

Ответы [ 5 ]

9 голосов
/ 09 сентября 2013
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)));
}

Это должно сделать необходимую работу за вас.

6 голосов
/ 01 августа 2011

Если у пользователя уже установлен Twitter на его телефоне, об этом должно позаботиться что-то вроде этого:

    try{
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.putExtra(Intent.EXTRA_TEXT, "this is a tweet");
            intent.setType("text/plain");
            final PackageManager pm = getPackageManager();
            final List<?> activityList = pm.queryIntentActivities(intent, 0);
            int len =  activityList.size();
            for (int i = 0; i < len; i++) {
                final ResolveInfo app = (ResolveInfo) activityList.get(i);
                if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
                    final ActivityInfo activity=app.activityInfo;
                    final ComponentName name=new ComponentName(activity.applicationInfo.packageName, activity.name);
                    intent.addCategory(Intent.CATEGORY_LAUNCHER);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    intent.setComponent(name);
                    startActivity(intent);
                    break;
                }
            }
      }
        catch(final ActivityNotFoundException e) {
            Log.i("twitter", "no twitter native",e );
        }
4 голосов
/ 16 марта 2016

Расширяя ответ @ Chrishan, вы можете открыть приложение Twitter для выполнения различных функций в зависимости от URI (список ниже из этого сообщения )

twitter://user?screen_name=lorenb
twitter://user?id=12345
twitter://status?id=12345
twitter://timeline
twitter://mentions
twitter://messages
twitter://list?screen_name=lorenb&slug=abcd
twitter://post?message=hello world
twitter://post?message=hello world&in_reply_to_status_id=12345
twitter://search?query=%23hashtag

, например

String uriStr = "twitter://post?message=hello world"
try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(uriStr)));
}catch (Exception e) {
   //the user doesn't have twitter installed
}

ПРИМЕЧАНИЕ: я пробовал только user и post, поэтому, если вы столкнетесь с тем, что не работает, пожалуйста, дайте мне знать, и я обновлю этот ответ.

2 голосов
/ 13 марта 2014

Я использую это:

Intent i = getOpenTwitterIntent(this, "UserName");
startActivity(i);

И функция:

public static Intent getOpenTwitterIntent(Context c, String Username) {

        try {
            c.getPackageManager().getPackageInfo("com.twitter.android", 0);
            return new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://user?screen_name="+ Username));
        } catch (Exception e) {
            return new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/#!/" + Username));
        }
    }

Если на устройстве установлено приложение Twitter, откройте его, а затем откройте веб-браузер ...

0 голосов
/ 17 февраля 2012
private void showTwitter(){
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setClassName("com.twitter.android", "com.twitter.android.ProfileActivity");    
        this.startActivity(intent);     
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...