filippo filippo - 4 years ago 231
Android Question

Share raw resource via WhatsApp

Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + ContextID.getPackageName() + "/" + ResourceID));
ContextID.startActivity(Intent.createChooser(share, "Condividi il suono"));

The above code works fine with Gmail, while Whatsapp gives a toast message like "Share a file failed, please try it again"

Maybe i've the same problem of this guy: Intent.ACTION_SEND Whatsapp

But how can i temporarily copy my resources on sd card and then share them?

Answer Source
File dest = Environment.getExternalStorageDirectory();
InputStream in = ContextID.getResources().openRawResource(ResourceID);              

    OutputStream out = new FileOutputStream(new File(dest, "lastshared.mp3"));  
    byte[] buf = new byte[1024];
    int len;
    while ( (len =, 0, buf.length)) != -1)
        out.write(buf, 0, len);
catch (Exception e) {}              

Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(Environment.getExternalStorageDirectory().toString() + "/lastshared.mp3"));
ContextID.startActivity(Intent.createChooser(share, "Condividi il suono \"" + TheButton.getText() + "\""));
return true;


<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download