当前位置: 代码迷 >> Android >> Emulator Control调试汉语短信
  详细解决方案

Emulator Control调试汉语短信

热度:175   发布时间:2016-05-01 11:38:28.0
Emulator Control调试中文短信
各位,鄙人刚刚开始接触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.                    // 获得短信的内容 
  相关解决方案