如何共享字节ACTION_SEND

时间:2018-01-03 11:58:54

标签: android android-intent byte

我只想要共享字节数组但是当我使用" EXTRA_STREAM"它没有用。 请帮帮我。

            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_SEND);

            if (attachBytes != null) {

                intent.putExtra(Intent.EXTRA_STREAM, byteArray);
                intent.setType(sharingMessageType + "/*");
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            }

            return intent;

1 个答案:

答案 0 :(得分:1)

The documentation for EXTRA_STREAM声明它的值是:

  

content: URI ,其中包含与Intent相关联的数据流,与ACTION_SEND一起用于提供正在发送的数据。

(强调补充)

因此,EXTRA_STREAM的值必须是Uricontent方案指向您希望共享的数据。例如,您可以使用FileProvider来共享包含您要共享的数据的文件。

无论如何,您不能直接将byte[]作为EXTRA_STREAM的值并期望它可以与任意应用一起使用。其他应用的开发人员期望Uri使用content方案,并且在尝试使用byte[]时可能会崩溃,可能会使用ClassCastException