2017-03-15 7 views
0

Androidのユーザーのバックグラウンドで永久に実行されるサービスを作成して、画面のオン/オフなどを確認する方法はありますか?Androidサービスがオンまたはオフになっているかどうかを確認する

アナリティクスを作成しようとしています。そのため、ユーザーが画面をオンまたはオフにするタイミングを知る必要があります。

おかげで、私はあなたがオンとオフスクリーンを検出するために、Androidの放送受信機を使用することができ、すべての入力

+0

の可能性のある重複[アンドロイド:放送の画面のための受信機とオフ画面](http://stackoverflow.com/questions/9477922/android-broadcast-receiver-for-screen-on-and-screen-オフ) – X3Btel

答えて

1

に従うことができます。

 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 

      } 
     } 
    } 
0

画面のオフ/オンイベントを受信するためにBroadcastReceiverを使用することはできません。 ブートリッスナー経由で開始され、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 
     } 
    } 
} 
関連する問題