Open the Twitter application from another application and load the page

Is there a way to open a Twitter application from my own application?

For example, I have my own Android application, and I want to open the Twitter application using Intent. How can i do this? Answers with an example will be highly appreciated.

+6
source share
5 answers

If the user has already installed Twitter on his phone, something like this should take care of this:

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 ); } 
+6
source
 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))); } 

This should do the work you need.

+8
source

I use this:

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

And function:

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

If the Twitter application is included in the device, open it, otherwise open a web browser ...

+2
source

Expanding in response to @Chrishan, you can open a Twitter application to perform various uri-based functions (list below from)

 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 

eg.

 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 } 

NOTE. I just tried user and post , so if you come across something that doesn't work, let me know and I will update this answer.

+2
source
 private void showTwitter(){ Intent intent = new Intent(Intent.ACTION_VIEW); intent.setClassName("com.twitter.android", "com.twitter.android.ProfileActivity"); this.startActivity(intent); } 
0
source

Source: https://habr.com/ru/post/894042/


All Articles