访问短信的用户数据头
答
用于接收短信的源代码有云:
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
Log.i(LOG_TAG, "onReceive");
if (extras == null)
return;
Object[] pdus = (Object[]) extras.get("pdus");
for (int i = 0; i < pdus.length; i++) {
SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);
String fromAddress = message.getOriginatingAddress();
String messageBody = message.getMessageBody().toString();
Log.i(LOG_TAG, "From: " + fromAddress + " message: " + messageBody);
addNotification(context, fromAddress, messageBody);
}
}
所以,这是一个字节[]类型,所以如果你有在User Data Header描述UDH良好的知识,我认为这是可能的。
谢谢。但我对此很陌生。你有没有任何想法如何从中提取udh值? – newbee 2013-03-06 06:29:33
如果你打算简单地从SmsMessage获取udh,你可以参考http://developer.android.com/reference/android/telephony/SmsMessage.html#getUserData() – lynn8570 2013-03-06 06:48:45
这只是给出了用户数据。而不是用户数据头'public byte [] getUserData() 在API级别4中添加 返回用户数据部分,如果存在用户数据部分,则减去用户数据头部。 – newbee 2013-03-06 07:02:27