解析接收的图像和文本的彩信
问题描述:
我正在开发一个适用于android的SMS-MMS电子仓库应用程序。其目的是纠正Android中存在的一些漏洞,并在特定联系人(加密的SMS和MMS)之间创建“安全”通信空间。解析接收的图像和文本的彩信
我已经实现了所有的功能,除了接收MMS的功能。我没有找到关于此事的文件。我一直在阅读了很多从实现这个功能,他们都等待股票应用程序接收彩信,然后检索它,这是不是我要找的,我的应用程序,就是要其他应用程序代码默认的一个。
所以,在这里回避我的问题:
接收彩信的意图,我该如何解析图像和文本之后?
答
所以,你能做些什么来获取图片是去我得到了MMS的id和经历(“内容:// MMS /部”) 做类型检查:
String type = cursor.getString(cursor.getColumnIndex("ct"));
String partId = cursor.getString(cursor.getColumnIndex("_id"));
//is type a picture
if ("image/jpeg".equals(type) || "image/bmp".equals(type)
|| "image/gif".equals(type) || "image/jpg".equals(type)
|| "image/png".equals(type)) {
getMmsImage(partId); // load in your picture
}
现在你,你让你知道图片的位置的部件ID,所以你可以使用你想要比如什么,如果你只是希望它加载它作为一个位图,你可以这样做:
public Bitmap getMmsImage(String _id, Context context) {
Uri partURI = Uri.parse("content://mms/part/" + _id);
InputStream is = null;
Bitmap bitmap = null;
try {
is = context.getContentResolver().openInputStream(partURI);
bitmap = BitmapFactory.decodeStream(is);
} catch (Exception e) {// probably should do an ioException around here}
finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {}
}
}
return bitmap;
}
现在我想指出的是,如果你想要动画GIF这不会工作,它会加载的GIF,但他们仍然是我法师。如果你想让它们动起来,你可以使用类似Glide的东西,并为它指定uri的路径位置。滑翔需要一段时间才能加载gif,只是公平的警告。
至于接收彩信时,你总是可以使用观察和负载所增加的消息在每当观察者说有变化......或者,如果你希望它是默认的信使使用广播接收器。