Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android : Share intent is not working for video file path

I have a video file path and want to share the video on social media, but unable to share the video. I am trying following code in Android Studio 2.2, but it's not working.

Code snippet :

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button shareBtn = (Button) findViewById(R.id.sharebutton);

    shareBtn .setOnClickListener(
            new Button.OnClickListener() {
                public void onClick(View v) {

                    File f = new File("/sdcard/VID_20161201123613.mp4");
                    Uri uriPath = Uri.parse(f.getPath());

                    Intent shareIntent = new Intent();
                    shareIntent.setAction(Intent.ACTION_SEND);
                    shareIntent.putExtra(Intent.EXTRA_TEXT, "Text");                  
                    shareIntent.putExtra(Intent.EXTRA_STREAM, uriPath);
                    shareIntent.setType("video/*");
                    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    startActivity(Intent.createChooser(shareIntent, "send"));

                }
            }
    );
}
like image 482
SRK Avatar asked Dec 01 '16 07:12

SRK


People also ask

How do I share a bitmap with intent?

setType("image/png"); intent. putExtra(Intent. EXTRA_STREAM, b); startActivity(Intent. createChooser(intent , "Share"));


2 Answers

Try This :

public void shareVideo(final String title, String path) {

MediaScannerConnection.scanFile(getActivity(), new String[] { path },

            null, new MediaScannerConnection.OnScanCompletedListener() {
                public void onScanCompleted(String path, Uri uri) {
                    Intent shareIntent = new Intent(
                            android.content.Intent.ACTION_SEND);
                    shareIntent.setType("video/*");
                    shareIntent.putExtra(
                            android.content.Intent.EXTRA_SUBJECT, title);
                    shareIntent.putExtra(
                            android.content.Intent.EXTRA_TITLE, title);
                    shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
                    shareIntent
                            .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                    context.startActivity(Intent.createChooser(shareIntent,
                            getString(R.string.str_share_this_video)));

                }
            });
}
like image 106
Ravish Sharma Avatar answered Oct 15 '22 10:10

Ravish Sharma


use this code for pick an video from SD card then send email with video....

    Intent sendIntent = new Intent(Intent.ACTION_SEND);
    sendIntent.setType("video/3gp");
    sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Video");
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/dcim/Camera/filename.3gp"));
    sendIntent.putExtra(Intent.EXTRA_TEXT, "Enjoy the Video");
    startActivity(Intent.createChooser(sendIntent, "Email:"));  
like image 42
Janak Avatar answered Oct 15 '22 09:10

Janak