已发送包含多张图片的彩信 android
Sent MMS with multiple images android
成功发送带有多张图片的彩信:
Followed these steps发送彩信并在andorid数据库中添加图片。
问题: 是我在 1 个彩信中有 3 个图像,但不知道如何将它们全部保存到 android 数据库中的单个彩信中。
我试过通过修改给定参考中的方法在单个彩信中保存多个图像。
private static Uri createPart(Context context, String id,
ArrayList<SentMMSVo> sentMMS2) throws Exception {
ContentValues mmsPartValue = new ContentValues();
mmsPartValue.put("mid", id);
mmsPartValue.put("ct", "image/png");
mmsPartValue.put("cid", "<" + System.currentTimeMillis() + ">");
Uri partUri = Uri.parse("content://mms/" + id + "/part");
Uri res = context.getContentResolver().insert(partUri, mmsPartValue);
Log.e(">>>>>>>", "Part uri is " + res.toString());
for (int i = 0; i < sentMMS2.size(); i++) {
// Add data to part
OutputStream os = context.getContentResolver()
.openOutputStream(res);
ByteArrayInputStream is = new ByteArrayInputStream(sentMMS2.get(i)
.getData());
byte[] buffer = new byte[256];
for (int len = 0; (len = is.read(buffer)) != -1;) {
os.write(buffer, 0, len);
}
os.close();
is.close();
}
return res;
}
此方法将保存单张图片。
它保存图像 1,然后将新图像字节覆盖到之前的图像。
如何在单个彩信中保存多张图片。
这可能对您有所帮助,本教程演示了如何从 SD 卡发送多张图片。
更新找到解决方案:
要在 android 数据库中将多个图像保存在单个 mms 中。我只需要像这样修改上面的内容。
逻辑:我们必须为单个彩信创建多个部分。
private static Uri createPart(Context context, String id,
ArrayList<SentMMSVo> sentMMS2) throws Exception {
ContentValues mmsPartValue = new ContentValues();
mmsPartValue.put("mid", id);
mmsPartValue.put("ct", "image/png");
for (int i = 0; i < sentMMS2.size(); i++) {
// Add data to part
mmsPartValue.put("cid", "<" + System.currentTimeMillis() + ">");
Uri partUri = Uri.parse("content://mms/" + id + "/part");
Uri res = context.getContentResolver().insert(partUri ,mmsPartValue);
Log.e(">>>>>>>", "Part uri is " + res.toString());
OutputStream os = context.getContentResolver()
.openOutputStream(res);
ByteArrayInputStream is = new ByteArrayInputStream(sentMMS2.get(i)
.getData());
byte[] buffer = new byte[256];
for (int len = 0; (len = is.read(buffer)) != -1;) {
os.write(buffer, 0, len);
}
os.close();
is.close();
}
return res;
}
成功发送带有多张图片的彩信:
Followed these steps发送彩信并在andorid数据库中添加图片。
问题: 是我在 1 个彩信中有 3 个图像,但不知道如何将它们全部保存到 android 数据库中的单个彩信中。
我试过通过修改给定参考中的方法在单个彩信中保存多个图像。
private static Uri createPart(Context context, String id,
ArrayList<SentMMSVo> sentMMS2) throws Exception {
ContentValues mmsPartValue = new ContentValues();
mmsPartValue.put("mid", id);
mmsPartValue.put("ct", "image/png");
mmsPartValue.put("cid", "<" + System.currentTimeMillis() + ">");
Uri partUri = Uri.parse("content://mms/" + id + "/part");
Uri res = context.getContentResolver().insert(partUri, mmsPartValue);
Log.e(">>>>>>>", "Part uri is " + res.toString());
for (int i = 0; i < sentMMS2.size(); i++) {
// Add data to part
OutputStream os = context.getContentResolver()
.openOutputStream(res);
ByteArrayInputStream is = new ByteArrayInputStream(sentMMS2.get(i)
.getData());
byte[] buffer = new byte[256];
for (int len = 0; (len = is.read(buffer)) != -1;) {
os.write(buffer, 0, len);
}
os.close();
is.close();
}
return res;
}
此方法将保存单张图片。 它保存图像 1,然后将新图像字节覆盖到之前的图像。
如何在单个彩信中保存多张图片。
这可能对您有所帮助,本教程演示了如何从 SD 卡发送多张图片。
更新找到解决方案:
要在 android 数据库中将多个图像保存在单个 mms 中。我只需要像这样修改上面的内容。
逻辑:我们必须为单个彩信创建多个部分。
private static Uri createPart(Context context, String id,
ArrayList<SentMMSVo> sentMMS2) throws Exception {
ContentValues mmsPartValue = new ContentValues();
mmsPartValue.put("mid", id);
mmsPartValue.put("ct", "image/png");
for (int i = 0; i < sentMMS2.size(); i++) {
// Add data to part
mmsPartValue.put("cid", "<" + System.currentTimeMillis() + ">");
Uri partUri = Uri.parse("content://mms/" + id + "/part");
Uri res = context.getContentResolver().insert(partUri ,mmsPartValue);
Log.e(">>>>>>>", "Part uri is " + res.toString());
OutputStream os = context.getContentResolver()
.openOutputStream(res);
ByteArrayInputStream is = new ByteArrayInputStream(sentMMS2.get(i)
.getData());
byte[] buffer = new byte[256];
for (int len = 0; (len = is.read(buffer)) != -1;) {
os.write(buffer, 0, len);
}
os.close();
is.close();
}
return res;
}