2013-05-10 89 views
0

我想在我的應用程序上接收短信,但是當我嘗試獲取新的短信時,我的應用程序沒有得到新的短信。我無法找到我在做錯的地方。我不確定代碼是否有問題,或調試。我的短信接收器不能接受新的短信

我想通知,如果一個新的短信到達,並保存在我的數據庫的短信。

這是我的接收器。

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); 

我的Android清單

更新

<?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> 

有人能幫助我嗎? 我真的需要解決方案。 感謝..

+0

貴的onReceive方法被調用? – stinepike 2013-05-10 03:59:13

+0

我該如何調用該方法?你能告訴我該怎麼做嗎? – androidDev 2013-05-10 04:03:27

+1

@androidDev註冊接收器在你的清單....隨着短信自動接收器的OnRecieve將被自動調用 – user1969053 2013-05-10 04:04:45

回答

2

代替p使用pdus

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

我已經更改了我的代碼,但它仍然是:( – androidDev 2013-05-12 07:39:58

+0

在您的清單中將主要活動中的移動到 2013-05-12 07:58:00

+0

上方的行如果我這樣做,我的應用程序的力量關閉,並沒有得到新的短信:( – androidDev 2013-05-12 12:52:56