2013-08-01 11 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")); 

Der obige Code funktioniert mit Gmail in Ordnung, während WhatsApp Nachricht Toast gibt wie „Teile einer Datei fehlgeschlagen, bitte versuchen Sie es erneut“Anteil roh Ressource über WhatsApp

Vielleicht habe ich das gleiche Problem dieser guy: Intent.ACTION_SEND Whatsapp

Aber wie kann ich vorübergehend meine Ressourcen auf SD-Karte kopieren und dann teilen?

Antwort

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; 

manifestieren:

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

Hallo Ich benutze deinen Code, um eine 'mp3' Datei über WhatsApp zu senden, aber ich bekomme einen Fehler wie' Senden fehlgeschlagen, bitte versuche es' noch einmal. Weißt du, wie du das überwinden kannst? Vielen Dank im Voraus –

+0

seine Arbeit .. Wenn Sie versuchen, direkt von Assets zu teilen, WhatsApp wird Ihnen nicht erlauben. –

+0

Grazie Mille !! gut Done;) – Manza

0

bitte diese Zeile aus dem Code ändern, und Sie werden in der Lage Schreib ("audio/mp3") als Gebrüll statt, weil Aktientyp ("audio/*")

share.setType("audio/mp3"); 

dies zu teilen für whatsapp unterstützt ("audio/*") oder ("*/*")

nicht