String.getBytes()是取决于本地缺省编码的,两边不一样就抓瞎了。你这种情况其实是要传byte[],这样硬生生转成String总觉得太危险,一般的做法是弄成比如Base64这样的7bits编码。现成的有sun.misc.BASE64Encoder和sun.misc.BASE64Decoder。
建议不要转换成String,图片读取只用byte或者byte[]不会出错。
byte[]转换String时使用举例
byte[] bytes = new byte[]{(byte) 0x03,(byte) 0x04,};
String targetStr = new String(bytes, "UTF-8")
其中"UTF-8"是转码参数,不写的话会按系统默认转码,这就说明byte[]转换String时,
出现特殊字符,即半角英文 数字 半角符号以外的特殊字符,如汉字 特殊符号等时,
如果编码设定不对的话,二进制编码将无法保持一致。
代码中的方法public static String bytesToString(byte[] b) 应该一样存在这个问题。
只是一个思路,你在这个Activity里把流转换成Bitmap,再放到集合里,传过去。