2012-11-18 82 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

参考在哪里? –