2012-11-18 100 views
3

我創建了一個BroadcastReceiver,它實際上處理傳入的SMS。這是代碼在Android 2.3.3中運行良好,但不知何故無法在運行ICS的設備上運行相同的代碼。Android - 傳入SMS監聽器(ICS)

我的收款人

public class SmsListener extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     System.out.println("#### SMS Received"); 
     if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){ 
      Bundle bundle = intent.getExtras();   //---get the SMS message passed in--- 
      SmsMessage[] msgs = null; 
      String msg_from; 
      if (bundle != null){ 
       //---retrieve the SMS message received--- 
       try{ 
        Object[] pdus = (Object[]) bundle.get("pdus"); 
        msgs = new SmsMessage[pdus.length]; 
        for(int i=0; i<msgs.length; i++){ 
         msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); 
         msg_from = msgs[i].getOriginatingAddress(); 
         String msgBody = msgs[i].getMessageBody(); 
         System.out.println("#### SMS Received: " + msg_from); 
         System.out.println("#### Message: " + msgBody); 
        } 
       }catch(Exception e){ 
          Log.d("Exception caught",e.getMessage()); 
       } 
      } 
     } 
    } 
} 

權限

<receiver android:name=".SmsListener" android:enabled="true"  android:permission="android.permission.RECEIVE_SMS"> 
     <intent-filter> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver>  

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.READ_SMS"/>  
+0

你無法在ICS上運行這個?意味着它不會編譯,部署,記錄錯誤或者它不起作用?你看看LogCat的輸出了嗎? – ottel142

+0

是的,在運行2.3及以下版本的設備上,應用程序運行良好,但在ICS設備上不能正常工作,我看到指示接收器不工作的日誌。 – Techfist

回答

0

其實我只有通過可見的活動得到了答案,使用最新的安全增補現在的廣播接收器Android的許可登記。

+2

參考在哪裏? –