0
我真的不明白如何將聲音分享給whatsapp。如何將.mp3文件共享到whatsapp?
我想它是這樣的:
btn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/raw/mySound");
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/mp3");
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share Sound File"));
return true;
}
});
現在,如果我嘗試點擊了WhatsApp它說:「分享失敗,請再試一次」
我在做什麼錯?我是新來的Android
我也試過這個代碼:
InputStream inputStream;
FileOutputStream fileOutputStream;
try {
inputStream = getResources().openRawResource(R.raw.testsound);
fileOutputStream = new FileOutputStream(
new File(Environment.getExternalStorageDirectory(), "testsound.mp3"));
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, length);
}
inputStream.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Sharing failed", Toast.LENGTH_LONG).show();
}
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM,
Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/testsound.mp3"));
intent.setType("audio/mp3");
startActivity(Intent.createChooser(intent, "Share sound"));
我收到以下錯誤:
06-14 17:18:00.025 7072-7072/com.games.penta.testsharingsound W/System.err: java.io.FileNotFoundException: /storage/58AC-F8FD/gehirnaussetzer.mp3: open failed: EACCES (Permission denied)
06-14 17:18:00.037 7072-7072/com.games.penta.testsharingsound W/System.err: at libcore.io.IoBridge.open(IoBridge.java:459)
06-14 17:18:00.037 7072-7072/com.games.penta.testsharingsound W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
06-14 17:18:00.037 7072-7072/com.games.penta.testsharingsound W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:72)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at com.games.penta.testsharingsound.MainActivity$2.onLongClick(MainActivity.java:55)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at android.view.View.performLongClick(View.java:5306)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at android.widget.TextView.performLongClick(TextView.java:9478)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at android.view.View$CheckForLongPress.run(View.java:21271)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at android.os.Handler.handleCallback(Handler.java:743)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at android.os.Looper.loop(Looper.java:150)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5621)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at java.lang.reflect.Method.invoke(Native Method)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
06-14 17:18:00.038 7072-7072/com.games.penta.testsharingsound W/System.err: Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
06-14 17:18:00.039 7072-7072/com.games.penta.testsharingsound W/System.err: at libcore.io.Posix.open(Native Method)
06-14 17:18:00.039 7072-7072/com.games.penta.testsharingsound W/System.err: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
06-14 17:18:00.039 7072-7072/com.games.penta.testsharingsound W/System.err: at libcore.io.IoBridge.open(IoBridge.java:445)
06-14 17:18:00.039 7072-7072/com.games.penta.testsharingsound W/System.err: ... 13 more
我不知道這是否是正確的URI。
檢查此鏈接。也許它對你有幫助https://stackoverflow.com/questions/17996353/share-raw-resource-via-whatsapp – Dhanumjay
@Dhanumjay我在我的代碼中複製了接受的答案。但什麼是ContentID?和ResourceID? – PentaGames
@Dhanumjay但我試過另一個代碼。看看我編輯的問題 – PentaGames