Android studio音频共享问题

时间:2018-04-27 18:04:28

标签: android android-studio

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上分享它时,它会说"无法附加空文件"。看起来我没有得到正确的文件路径,所以我基本上什么都不分享。我做错了什么?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

重复的问题

Android Attaching a file to GMAIL - Can't attach empty file

他们如何解决这个问题?通过@guifgdeo

好的,经过大量研究和拦截一些意图后,现在就开始工作了。

我必须做的是将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。