我的短信接收方无法接受新的SMS [英] my sms receiver can't accept new sms

查看:148
本文介绍了我的短信接收方无法接受新的SMS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望收到我的申请短信,但是当我试图让新的短信我的申请没有得到新的短信。我找不到我在哪里做错了。我不知道是否有什么毛病code或调试。

i want to receive sms on my application, but when i try to get new sms my application didn't get the new sms. I cannot find where I am doing wrong. I'm not sure if there's something wrong with the code, or debugging.

我想如果一个新的短信到达通知,并保存在我的数据库中的短信。

I'm trying to be notified if a new SMS arrives and save the sms on my database.

这是我的接收器。

public void onReceive( Context c, Intent i) {
    Bundle b = i.getExtras();
    SmsMessage[] m = null;
    String s = "";
    TelephonyManager teleponyManager = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
    int x;
    if (b != null) { //IF valid SMS
        Object[] p = (Object[]) b.get("p");
        m = new SmsMessage[p.length];
        for (x = 0; x < m.length; x++) { //FOR ambil konten SMS
            m[x] = SmsMessage.createFromPdu((byte[])p[x]);
            s += "SMS dari " +m[x].getOriginatingAddress().toString().trim();
            s += " :";
            s += m[x].getMessageBody().toString();
            s += "\n";                              
        }
        Toast.makeText(c, s, Toast.LENGTH_LONG).show();

        nomor = m[x].getOriginatingAddress().toString().trim();
        pesan = m[x].getMessageBody().toString();

        Cursor cursorKontak = data.pilihKontak(nomor);
        if(cursorKontak.moveToFirst()) {
            idkontak = cursorKontak.getString(cursorKontak.getColumnIndex("idkontak"));
        }

        if(idkontak == null) {
            nama = nomor;
            data.inputKontak(nama, nomor);

            Cursor cursorKontak2 = data.pilihKontak(nomor);
            if(cursorKontak2.moveToFirst()) {
                idkontak = cursorKontak2.getString(cursorKontak2.getColumnIndex("idkontak"));
            }

            data.inputPesanMasuk(idkontak, pesan);      

        }else {
            data.inputPesanMasuk(idkontak, pesan);
        }

        Intent broadcastIntent = new Intent();
        broadcastIntent.setAction("SMS_RECEIVED_ACTION");
        broadcastIntent.putExtra("sms", s);
        c.sendBroadcast(broadcastIntent);

我的Andr​​oid清单

my android manifest

更新

<?xml version="1.0" encoding="UTF-8"?>
<manifest android:versionCode="1" android:versionName="1.0"
package="com.sms" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="10"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
    <activity android:label="@string/app_name"
        android:name="EnkripsiSMS" android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
      </activity>
        <receiver android:name=".SMSReceiver" >
            <intent-filter >
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
        </receiver>

    <activity android:name=".KotakMasuk"/>
    <activity android:name=".TulisPesan"/>
    <activity android:name=".KotakKeluar"/>
    <activity android:name=".HasilEnkripsi"/>
    <activity android:name=".KirimPesan"/>
    <activity android:name=".IsiPesanKeluar"/>
    <activity android:name=".DekripsiPesanKeluar"/>
    <activity android:name=".HasilDekripsiPesanKeluar"/>
    <activity android:name=".TeruskanPesanKeluar"/>
    <activity android:name=".KirimPesanKeluar"/>
    <activity android:name=".IsiPesanMasuk"/>
    <activity android:name=".DekripsiPesanMasuk"/>
    <activity android:name=".TeruskanPesanMasuk"/>
    <activity android:name=".HasilDekripsiPesanMasuk"/>
    <activity android:name=".Balas"/>
    <activity android:name=".HasilBalas"/>
    <activity android:name=".KirimPesanMasuk"/>
</application>
</manifest>

有人可以帮我吗?
我真正需要的解决方案。
感谢..

can somebody help me? i really need the solution. thanks..

推荐答案

使用的PDU

Object[] p = (Object[]) b.get("pdus");

这篇关于我的短信接收方无法接受新的SMS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆