簡體   English   中英

Android Service檢查用戶屏幕是否打開或關閉

[英]Android Service to check whether the user screen on or off

有什么方法可以創建可在后台永久運行的服務,以供Android用戶檢查其屏幕是否打開等。

我將要創建一個分析,因此我需要知道用戶何時打開或關閉屏幕。

謝謝,我將不勝感激

您可以使用Android廣播接收器來檢測屏幕的開和關。 這是一個很好的例子

https://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/

您也可以按照此線程https://stackoverflow.com/a/9478013/2784838

您需要創建廣播接收器並管理屏幕的打開或關閉狀態。

     Declare receiver in manifest:    
     <receiver android:name=".DeviceWakeUpReceiver" />


    public class DeviceWakeUpReceiver extends BroadcastReceiver {
        private static final String TAG = "DeviceWakeUpService";
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d(TAG, "onReceive() called");
            if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
                //End service when user phone screen off

            } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
                //Start service when user phone screen on

            }
        }
    }

您不能使用BroadcastReceiver接收屏幕關閉/打開事件。 編寫一個通過啟動完成偵聽器啟動的Intent服務,並注冊Intent.ACTION_SCREEN_OFF和Intent.ACTION_SCREEN_ON。

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
registerReceiver(new ScreenOffOnReceiver(), filter);

class ScreenOffOnReiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
         if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
             // Screen OFF
         else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
             // Screen ON
         }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM