Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android屏幕加解鎖事件廣播的監聽

android屏幕加解鎖事件廣播的監聽

編輯:關於Android編程

  想在程序中監聽屏幕SCREEN_ON和SCREEN_OFF這兩個action,實現屏幕鎖定狀態的監聽,從而實現自己的相應功能。比較奇怪的是這兩個action只能通過代碼的形式注冊才能被監聽到,在AndroidManifest.xml中注冊根本監聽不到。去網上查了一下,原來是PowerManager那邊在發這個廣播的時候做了限制,限制只有register到代碼中的receiver才能接收。特此記錄!

 

 

 

[html]
public class ScreenActionReceiver extends BroadcastReceiver { 
 
    private String TAG = "ScreenActionReceiver"; 
    private boolean isRegisterReceiver = false; 
 
    @Override 
    public void onReceive(Context context, Intent intent) { 
        String action = intent.getAction(); 
        if (action.equals(Intent.ACTION_SCREEN_ON)) { 
            Logcat.d(TAG, "屏幕解鎖廣播..."); 
        } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { 
            Logcat.d(TAG, "屏幕加鎖廣播..."); 
        } 
    } 
 
    public void registerScreenActionReceiver(Context mContext) { 
        if (!isRegisterReceiver) { 
            isRegisterReceiver = true; 
 
            IntentFilter filter = new IntentFilter(); 
            filter.addAction(Intent.ACTION_SCREEN_OFF); 
            filter.addAction(Intent.ACTION_SCREEN_ON); 
            Logcat.d(TAG, "注冊屏幕解鎖、加鎖廣播接收者..."); 
            mContext.registerReceiver(ScreenActionReceiver.this, filter); 
        } 
    } 
 
    public void unRegisterScreenActionReceiver(Context mContext) { 
        if (isRegisterReceiver) { 
            isRegisterReceiver = false; 
            Logcat.d(TAG, "注銷屏幕解鎖、加鎖廣播接收者..."); 
            mContext.unregisterReceiver(ScreenActionReceiver.this); 
        } 
    } 
 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved