我只想要共享字节数组但是当我使用" 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;
答案 0 :(得分:1)
The documentation for EXTRA_STREAM
声明它的值是:
content:
URI ,其中包含与Intent
相关联的数据流,与ACTION_SEND
一起用于提供正在发送的数据。
(强调补充)
因此,EXTRA_STREAM
的值必须是Uri
,content
方案指向您希望共享的数据。例如,您可以使用FileProvider
来共享包含您要共享的数据的文件。
无论如何,您不能直接将byte[]
作为EXTRA_STREAM
的值并期望它可以与任意应用一起使用。其他应用的开发人员期望Uri
使用content
方案,并且在尝试使用byte[]
时可能会崩溃,可能会使用ClassCastException
。