2016-08-29 19 views
-1

いくつかのオーディオファイルをテレグラム、googleドライブ、whatsappなどの他のアプリに共有することはできますか? 私のファイルがダウンロードされ、のように、私のアプリのプライベートフォルダに保管されています:/data/user/0/myPackage/app_NameOfFolder/file.mp3私はこの単純な方法を書いたAndroid共有アプリのプライベートファイル

public void sendSound(String fileToSend){ 
    try{ 

     Log.d(TAG,"Sending: " + fileToSend); 
     Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
     Uri audioUri = Uri.parse(fileToSend); 
     sharingIntent.setType("audio/*"); 
     sharingIntent.putExtra(Intent.EXTRA_STREAM, audioUri); 
     startActivity(Intent.createChooser(sharingIntent, "Share")); 

    }catch (Exception e){ 
     Log.d("TAG",e.getMessage()); 
     Log.d("TAG",e.toString()); 
    } 

} 

をしかし、私は」エラーを取得し、それを共有することはできませんmは:「を共有することができませんでし再試行してください」私は公共のディレクトリにファイルを移動する場合は、 のように:Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() +"/file.mp3";

それは動作しますので、私はそれを許可に関連する何かだと思うので、これがあります私のマニフェスト:

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

ダンノー私は間違ったthoをしています。

+0

申し訳ありません –

+0

ファイル**を汎用ファイル**として電子メールの意図に添付して共有しようとすることができます。 'intent chooser'を使うことで、どのアプリを使ってそれを送るのかを選択することができます。 –

答えて

4

サードパーティのアプリケーションには、internal storageの部分に対する権利がありません。

ほとんどの場合、あなたのファイルがgetFilesDir()またはgetCacheDir()の場合は、少なくともuse FileProviderのコンテンツを他のアプリで利用できるようにすることができます。

+0

私はそれを試してみましょう、私に解決策を教えてくれてありがとう、ありがとう。 – Vesco

+0

私は似たような試みをしています[**ここ**](https://stackoverflow.com/q/46789824/2624806)。私が逃していることは何ですか? – CoDe

関連する問題