2017-06-14 11 views
0

私は本当にwhatsappに音をどのように共有するのか分かりません。.mp3ファイルをwhatsappに共有するには?

私はこのようにそれを試してみました:私は間違って何をやっている

を共有「が失敗し、再試行してください」:?私はそれが言うの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; 
     } 
    }); 

私は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であれば、私は知りません。

+0

このリンクを確認してください。たぶんそれはあなたのために役立ちますhttps://stackoverflow.com/questions/17996353/share-raw-resource-via-whatsapp – Dhanumjay

+0

@Dhanumjay私は自分のコードで受け入れられた答えをコピーしました。しかし、ContentIDは何ですか?そしてResourceID? – PentaGames

+0

@Dhanumjayしかし、別のコードを試しました。私の編集した質問を見てください – PentaGames

答えて

0
Intent share = new Intent(Intent.ACTION_SEND); share.setType("audio/*"); 
share.putExtra(Intent.EXTRA_STREAM, uri); 
startActivity(Intent.createChooser(share, "Share Sound File")); 
+0

これはなぜ機能するのか説明しているコードで[回答を追加**](https://stackoverflow.com/posts/44535275/edit)してください。 'audio/mp3'を' audio/* 'に置き換えるべきでしょうか?それはコードダンプの論理ですか? –

関連する問題