Ves*_*sco 0 android share private file
是否有可能通过Intent将一些音频文件分享给其他应用,如电报,谷歌驱动器,whatsapp?我的文件正在下载并保存到我的app私人文件夹中,例如:/data/user/0/myPackage/app_NameOfFolder/file.mp3
我写了这个简单的方法:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
但是我无法分享它,收到错误:"无法分享请重试"如果我将文件移动到公共目录中,例如: 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" />
Run Code Online (Sandbox Code Playgroud)
不知道我做错了什么.
第三方应用程序无权使用您的内部存储空间.
最有可能的是,您可以使用FileProvider此内容提供给其他应用程序,至少如果您的文件位于getFilesDir()或位于某处getCacheDir().