小弟在看这两章的书籍时候实在不明白一个问题,就是怎么在doc中去找所有的broadcast 和所有intent通知,比如我在参考书上看到:
<receiver android:name="EX06_01_SMSreceiver"> 
  <intent-filter> 
    <action 
      android:name="android.provider.Telephony.SMS_RECEIVED" /> 
  </intent-filter> 
 </receiver>   
这个短信接收的广播我在api doc中找了很久很久也找不到。
想请问各位大侠,这里是不是还有一套包含很多广播或者其他intent的信息我实在是找不到了
另外,
在doc中的intent 目录下确实有很多内容,但是好像都不能用啊,比如我想监听屏幕变黑:
         public void onReceive(Context context, Intent intent) {
  
   if(intent.getAction().equals( "android.intent.action.SCREEN_OFF" )){
                     Toast.makeText(context, "bbbb", Toast.LENGTH_LONG).show(); }
          }
         xml文件中如下:
         <receiver android:name="ServiceReceiver">
<intent-filter>
<action android:name="android.intent.action.SCREEN_OFF" />
</intent-filter>
</receiver>
可是就是监听不到。是不是我这里有什么地方写错了??
急求各位大哥帮忙啊!!
谢谢

解决方案 »

  1.   


        BroadcastReceiver mReceiver;       
     mReceiver = new BroadcastReceiver() {
                
                @Override
                public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                      Log.i("Young", intent.getAction());
                }
            };
            IntentFilter filter = new IntentFilter();
            filter.addAction("android.intent.action.SCREEN_OFF");
            registerReceiver(mReceiver, filter);这样是可以监听到的,估计你的receiver没有注册。
      

  2.   


    刚才说错了,不是你的receiver没有注册,而是screen on这种消息,通过receiver的方式接收不到。通过自己注册BroadcastReceiver是可以接收到的。
      

  3.   


    hi 哥们,
        我想请问一下为什么您说的receive接收不到?消息是不是分为很多种,有些接收不到??我不是很明白,能帮忙回答一下吗?十分感谢
      

  4.   

    刚试了下,xml里吧screenon改成 timezonechanged是可以抓到的。 screen_on和screen_off确实抓不到,不知道为啥
      

  5.   


    这个我也不清楚呢,manifest里面的receiver可以收到的消息是不全的,具体原因不详望达人解答
      

  6.   

    在 android 系统里有很多intent 是不能通过在AndroidManifest.xml 里面定义来匹配的,因为发Intent的地方给这个intent加了flag了。。比如:
    new Intent(Intent.ACTION_TIME_TICK).addFlags(
                            Intent.FLAG_RECEIVER_REGISTERED_ONLY), 0);
    这是在AlarmManagerService 里面发的,“Intent.FLAG_RECEIVER_REGISTERED_ONLY” 就给出了能接收的条件,希望对你有帮助。