Share video on twitter via android app

五迷三道 提交于 2019-12-06 02:27:17
Android Developer

Improvising the AndroidEnthusiastic's answer,below is working code for Sharing video on twitter via android app

File f=new File(filepath);
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("video/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
final PackageManager pm = getActivity().getApplicationContext().getPackageManager();
final List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);

for (final ResolveInfo app : activityList) {

   if("com.twitter.android.composer.ComposerActivity".equals(app.activityInfo.name))        
    {

        final ActivityInfo activity = app.activityInfo;
        final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
        shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
        shareIntent.setComponent(name);
        getActivity().getApplicationContext().startActivity(shareIntent);
        break;
    }


 }

where filepath is the path of video stored in device storage like "/storage/emulated/0/Videos/VID_20151011_115238.mp4"

it's working code. please go through it.

    Button b;
    String path="video path";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button button=(Button)findViewById(R.id.button1);
    button.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
        shareIntent.setType("image/*");
        shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,path);
        final PackageManager pm = v.getContext().getPackageManager();
        final List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
        for (final ResolveInfo app : activityList) {
          if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
            final ActivityInfo activity = app.activityInfo;
            final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
            shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            shareIntent.setComponent(name);
            v.getContext().startActivity(shareIntent);
            break;
          }
        }
      }
    });

android manifest

             <intent-filter>
             <action android:name="android.intent.action.MAIN" />
            <data android:mimeType="image/*" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!