如何在Android中以编程方式从长短信中读取短信数据?

时间:2017-02-23 11:52:35

标签: android broadcastreceiver sms

我使用广播接收器读取了传入的短信数据。但在这种情况下,我输入的短信数据会更大(超过150个字符).Sms收到两个独立的部分,此时广播接收器读取短信数据。但是我无法在同一个变量中获得完整的内容。 请给我解决方案。提前谢谢。

  

这是我传入的短信

     

TrackLocationResponse @ 80.233555,13.050061666666666!80.233555,13.050061666666666!80.233555,13.050061666666666!80.233555,13.050061666666666!80.23430333333334,13.052583333333333!80.23430333333334,13.052583333333333!80.23430333333334,13.052583333333333!

private BroadcastReceiver receiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub

            Bundle b = intent.getExtras();

        if (b == null) {
                return;
            }
            Object[] pdus = (Object[]) b.get("pdus");
            if (pdus != null) {
                for (int i = 0; i < pdus.length; i++) {

                    SmsMessage SMessage = SmsMessage
                            .createFromPdu((byte[]) pdus[i]);

                    body = SMessage.getDisplayMessageBody();
                    number = SMessage.getDisplayOriginatingAddress();
                    Log.d("Sms Recived", body + " : " + number);//this line working properly

                }
    if ((body.startsWith("TrackLocationResponse"))) {
                    String recvedContent[]=body.split("@");
                    Log.d("getSmsLocationTracking", recvedContent[1]);
                    //this not working only when sms content is large   
                }
}

0 个答案:

没有答案