通过android中的意图分享视频到viber无法正常工作

时间:2014-11-11 21:57:40

标签: android android-intent share viber

我google了很多但没有成功。 我想通过以下代码在我的应用程序中共享视频文件:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("video/mp4"); //or even video mpeg not working!
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + outputFileInformation.getFullPath()));
startActivity(Intent.createChooser(intent, getString(R.string.share)));

我尝试了其他一些代码,但是对于共享列表,如果我选择 Viber ,选择收件人后没有任何反应,屏幕闪烁,没有任何反应。 (我必须说共享image/png没有问题。 我真的需要尽快完成这项工作。 我可以轻松地从图库中分享该视频,但没有任何问题,但现在正在我的应用程序中工作......

1 个答案:

答案 0 :(得分:1)

我设法让它发挥作用。 我必须以另一种方式创建一个Uri,这是我用于从视频文件路径制作Uri的代码(你也可以为图像更改它)

public static Uri getVideoContentUri(Context context, File imageFile) {
    String filePath = imageFile.getAbsolutePath();
    Cursor cursor = context.getContentResolver().query(
            MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
            new String[] { MediaStore.Video.Media._ID },
            MediaStore.Video.Media.DATA + "=? ",
            new String[] { filePath }, null);
    if (cursor != null && cursor.moveToFirst()) {
        int id = cursor.getInt(cursor
                .getColumnIndex(MediaStore.MediaColumns._ID));
        Uri baseUri = Uri.parse("content://media/external/video/media");
        return Uri.withAppendedPath(baseUri, "" + id);
    } else {
        if (imageFile.exists()) {
            ContentValues values = new ContentValues();
            values.put(MediaStore.Video.Media.DATA, filePath);
            return context.getContentResolver().insert(
                    MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);
        } else {
            return null;
        }
    }
}