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

來源:互聯網
上載者:User

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

public class ScreenActionReceiver extends BroadcastReceiver {private String TAG = "ScreenActionReceiver";private boolean isRegisterReceiver = false;@Overridepublic 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);}}}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.