如何通过意图共享文件夹?

时间:2016-06-28 09:57:08

标签: android

我找到了这个代码,用于通过蓝牙/云存储/ wifi共享图像文件。但我如何共享整个文件夹呢?这是我的代码 -

private void shareImage() {
    Intent share = new Intent(Intent.ACTION_SEND);

    // If you want to share a png image only, you can do:
    // setType("image/png"); OR for jpeg: setType("image/jpeg");
    share.setType("image/*");

    // Make sure you put example png image named myImage.png in your
    // directory
    String imagePath = Environment.getExternalStorageDirectory()
            + "/myImage.png";

    File imageFileToShare = new File(imagePath);

    Uri uri = Uri.fromFile(imageFileToShare);
    share.putExtra(Intent.EXTRA_STREAM, uri);

    startActivity(Intent.createChooser(share, "Share Image!"));
}

2 个答案:

答案 0 :(得分:2)

使用Intent.ACTION_SEND_MULTIPLE代替Intent.ACTION_SEND

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.putExtra(Intent.EXTRA_SUBJECT, "Here are some files.");
intent.setType("*/*"); /* allow any file type */

ArrayList<Uri> files = new ArrayList<Uri>();                    
for(String path : filesToSend /* List of the files you want to send */) {
    File file = new File(path);
    Uri uri = Uri.fromFile(file);
    files.add(uri);
}

intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files);
startActivity(intent);

答案 1 :(得分:1)

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.putExtra(Intent.EXTRA_SUBJECT, "Here are some files.");
intent.setType("*/*"); /* allow any file type */

//Get all files in this particular location
File[] filesToSend = new File("/sdcard/myDocs").listFiles();

ArrayList<Uri> files = new ArrayList<Uri>();
for (File file : filesToSend) {
    Uri uri = Uri.fromFile(file);
    files.add(uri);
}

intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files);
startActivity(intent);