各位,鄙人刚刚开始接触android开发,初期实验时发现使用Emulator Control调试中文短信,收到的只能是乱码,如何能够收到中文呢。还请各位高手指点,谢谢!
------解决方案--------------------
我们看一下方法类:
01.package com.smart.sms;
02.
03.import android.content.BroadcastReceiver;
04.import android.content.Context;
05.import android.content.Intent;
06.import android.os.Bundle;
07.import android.telephony.SmsMessage;
08.import android.widget.Toast;
09.
10.public class SmsReceiver extends BroadcastReceiver{
11.
12. @Override
13. public void onReceive(Context context, Intent intent) {
14.
15. if("android.provider.Telephony.SMS_RECEIVED".equals(intent.getAction())){
16.
17. StringBuilder sb=new StringBuilder();
18. // 接收由SMS传过来的数据
19. Bundle bundle=intent.getExtras();
20. // 判断是否有数据
21. if(bundle!=null){
22. //通过pdus可以获得接收到的所有短信消息
23. Object[] objArray=(Object[]) bundle.get("pdus");
24. //构建短信对象array,并依据收到的对象长度来创建array的大小
25. SmsMessage[] message=new SmsMessage[objArray.length];
26.
27. for (int i = 0; i < objArray.length; i++) {
28. message[i]=SmsMessage.createFromPdu((byte[])objArray[i]);
29. }
30. // 将送来的短信合并自定义信息于StringBuilder当中
31. for (SmsMessage currentMessage:message) {
32. sb.append("短信来源");
33. // 获得接收短信的电话号码
34. sb.append(currentMessage.getDisplayMessageBody());
35. sb.append("\n------短信内容------\n");
36. // 获得短信的内容