2011-10-01 74 views
1

我正在創建一個使用廣播接收器的類。我想在解鎖手機時收到廣播。但有一些問題。請幫助我。Broadcast Receiver for ACTION_USER_PRESENT,ACTION_SCREEN_ON,ACTION_BOOT_COMPLETED

我的Manifest.xml是: -

<receiver android:name=".MyReciever"> 
    <intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.ACTION_USER_PRESENT" /> 
      <action android:name="android.intent.action.ACTION_BOOT_COMPLETED" /> 
      <action android:name="android.intent.action.ACTION_SCREEN_ON" /> 
     </intent-filter> 
    </intent-filter> 
</receiver> 

和我的廣播reciever類: -

public class MyReiever extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
    Log.d("My Reciever","is intent null => " + (intent == null)); 
    Log.d("My Reciever",intent.getAction()+""); 
    } 
} 

雖然其他應用程序和服務接收 「Screen_on」 和 「USER_PRESENT」 如廣播。 WifiService。

+2

我的清單文件中存在錯誤。正確清單是如下: - '<接收機機器人: 「MyReciever 」名稱=> <意圖濾波器> <操作機器人:名稱=「 android.intent.action.ACTION_USER_PRESENT」/> <動作android:name =「android.intent.action.ACTION_BOOT_COMPLETED」/> ' –

回答

2

雖然Java常數android.content.intent.ACTION_USER_PRESENTandroid.content.intent.ACTION_BOOT_COMPLETEDandroid.content.intent.ACTION_SCREEN_ON這些常數是android.intent.action.USER_PRESENTandroid.intent.action.BOOT_COMPLETEDandroid.intent.action.SCREEN_ON。它是那些需要出現在清單中的值。

但是,請注意,ACTION_SCREEN_ON的接收器不能在清單中聲明,但必須通過Java代碼註冊,例如參見this question

0

檢查您的類名,即擴展BroadcastReceiver。它應該是「MyReciever」而不是「MyReiever」

相關問題