好的人,
我唯一缺少的是如何解析MMS PDU并获取二进制数据及其mime类型。
有人能指出我的资源/示例,或者只是解释一下如何做到这一点?
public class MmsReceiver extends BroadcastReceiver {
private static final String PDUS = "pdus";
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object[] pdus = (Object[]) bundle.get(PDUS); //getting PDU's from extras
//what next??
}
}
答案 0 :(得分:0)
您想要做类似
的事情SendReq parsed = (SendReq) new PduParser(pduByteArray).parse();
例如,如果是传出的MMS SendReq;如果它是一个传入的,我相信你想要转换为一个RetrieveConf。然后有访问者等将它拆开。
可悲的是,这些对象上的toString()并没有给你任何特别有用的东西(我们可以梦想!)
在RetrieveConf中,您可以调用getContentType(),它返回消息中类型的数组。为了获得实际的二进制数据,我认为您可能需要直接转到系统内容存储表;我不认为完整的二进制数据存储在PDU对象中(即使它可能已经通过网络发送;我认为它一旦到达系统数据库就被隐藏到系统数据库中,分成单个对象)
答案 1 :(得分:-2)
SmsMessage[] sms = new SmsMessage[pdus.length];
sms[0] = SmsMessage.createFromPdu((byte[]) pdus[0]);