2013-08-01 19 views
5
Intent share = new Intent(Intent.ACTION_SEND); 
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + ContextID.getPackageName() + "/" + ResourceID)); 
share.setType("audio/*"); 
ContextID.startActivity(Intent.createChooser(share, "Condividi il suono")); 

Il codice precedente funziona bene con Gmail, mentre WhatsApp dà un messaggio di brindisi come "Condividere un file non è riuscito, si prega di provare di nuovo"Condividi risorsa grezza via WhatsApp

forse ho lo stesso problema di questo guy: Intent.ACTION_SEND Whatsapp

Ma come posso copiare temporaneamente le mie risorse su scheda SD e condividerle?

risposta

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

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

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

manifestare:

<manifest ...> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
    ... 
</manifest> 
+1

Ciao Sto usando il tuo codice per inviare un file 'mp3' tramite WhatsApp, ma sto ricevendo un errore simile a" Invio fallito, per favore riprova ". Sai come superare questo? Grazie in anticipo –

+0

che funziona .. se si tenta di condividere direttamente da risorse, whatsapp non ti permetterà. –

+0

Grazie Mille !! ben fatto;) – Manza

0

favore cambia questa riga dal codice e sarete in grado di condividere scrittura ("audio/mp3") come muggito invece ("audio/*")

share.setType("audio/mp3"); 

questo è dovuto al tipo di azione per WhatsApp non supporta ("audio/*") o ("*/*")