当前位置: 代码迷 >> Android >> Emulator Control调试中文短信,该如何解决
  详细解决方案

Emulator Control调试中文短信,该如何解决

热度:138   发布时间:2016-04-28 05:00: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.                    // 获得短信的内容 
37.                    sb.append(currentMessage.getDisplayMessageBody()); 
38.                     
39.                } 
40.                Intent mainIntent=new Intent(context,SmsActivity.class); 
41.                mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
42.                context.startActivity(mainIntent); 
43.                Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG).show(); 
44.                 
45.            } 
46.             
47.             
48.        } 
49.    } 
50. 
51.} 


main.xml文件编写代码:

 
01.<?xml version="1.0" encoding="utf-8"?> 
02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
03.    android:orientation="vertical" 
04.    android:layout_width="fill_parent" 
05.    android:layout_height="fill_parent" 
  相关解决方案