如题从网上查到的接收方法基本上都是继承BroadcastReceiver,并重写onReceive方法,在AndroidManifest.xml里添加SMS_RECEIVED权限和<receiver>段落.但我在实际验证是,发现来短信时并没有响应onReceive方法. 不知道是什么问题?是不是还有其他要注意的东西?有没有端口什么的限制?知道的同志帮帮忙,谢谢

解决方案 »

  1.   

    还要在AndroidManifest.xml里写上你继承BroadcastReceiver的类
      

  2.   

    楼上的哥们,你说的那个,我写了,在<receiver>段落里.
    <receiver android:name=".C_SmsReceiver" android:enabled="true">
      <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
      </intent-filter>
    </receiver>C_SmsReceive就是继承BroadcastReceiver的类
      

  3.   

    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    这个写了吗?
      

  4.   

        @Override
        public void onReceive(Context context, Intent intent) {
            Bundle extras = intent.getExtras();
            if (extras == null)
                return;        Object[] pdus = (Object[]) extras.get("pdus");        for (int i = 0; i < pdus.length; i++) {
                SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);
                String fromAddress = message.getOriginatingAddress();
                Intent intent = new Intent();
                intent.setClass(context, SmsReceivedDialog.class);
                context.startActivity(intent);
            }
        }
    以上的代码,正常跳转到SmsReceivedDialog.class里,SmsReceivedDialo里有其他的显示操作。
    PS: 基于2.2的SDK下。
      

  5.   

    5楼的兄弟说的2.2里才能用?
    有没有1.5,1.6能用的,毕竟现在很多的android手机还是低版本的,开发时肯定要兼顾低版本的
      

  6.   

    这个我觉得在模拟器上测试收短信的时候,是在DDMS中的Emulator control中设置的
      

  7.   

    我也是 试过网上无数的教程和代码片断 没有一个成功收短信的,根本没触发,研究了好几个星期,但example自带的示例能收发,但里面的示例相当复杂,代码相当多,说明网上的代码都是有缺憾的,缺没人指出来,悲剧
      

  8.   

    静态注册不行 试试动态注册的吧 还有 接收短信不建议用BroadcastReceiver 现在的360 qq什么的会把一些短信直接拦截  你是监听不到的。