b1.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Uri uri = Uri.parse("android.resource://haydo.kufurbaz.kfrbazhaydosesleri/raw/aaaww.mp3");
Intent myınIntent = new Intent(Intent.ACTION_SEND);
myınIntent.setType("audio/*");
String sharebody = "Your body here";
myınIntent.putExtra(Intent.EXTRA_STREAM,uri);
startActivity(Intent.createChooser(myınIntent,"Share using"));
return true;
}
});
例如,当我选择在GMail上分享它时,它会说"无法附加空文件"。看起来我没有得到正确的文件路径,所以我基本上什么都不分享。我做错了什么?
非常感谢任何帮助。
答案 0 :(得分:0)
好的,经过大量研究和拦截一些意图后,现在就开始工作了。
我必须做的是将file:///更改为content://。
我是根据Android的这些信息执行此操作的:https://developer.android.com/reference/android/support/v4/content/FileProvider.html
唯一的主要变化是我使用了/sdcard/file.ext的硬编码路径。 这一行
getUriForFile(getContext(), "com.mydomain.fileprovider", newFile);
已更改为
Uri contentUri = FileProvider.getUriForFile(this, "com.mydomain.fileprovider", newFile);
还必须包括:
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
i.setData(contentUri);
我真的不明白为什么我必须将从文件更改为内容,但在此之后,该文件现在又被重新附加了!如果您遇到此问题,请查看链接,并且不要忘记需要创建的新.xml。