よくある質問(FAQ)
- HOME
- サポート
- よくある質問(FAQ)
- アプリケーションで画面のON/OFFを検知することはできますか?
アプリケーションで画面のON/OFFを検知することはできますか?
BroadcastReceiverを使用することで画面のON/OFFを検知できます。
下記に参考のソースコードを記載します。
検知を開始する時にレシーバ登録(registerReceiver)します。(例の場合はonCreate)
登録後、画面ON/OFFのタイミングでonReceiveメソッドが実行されます。
検知を終了する時にレシーバ解除(unregisterReceiver)してください。(例の場合はonDestroy)
▼例
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // レシーバを登録する IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(Intent.ACTION_SCREEN_ON); intentFilter.addAction(Intent.ACTION_SCREEN_OFF); registerReceiver(screenOnOffReceiver, intentFilter); } @Override protected void onDestroy() { super.onDestroy(); // レシーバを解除する unregisterReceiver(screenOnOffReceiver); } private final BroadcastReceiver screenOnOffReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_SCREEN_ON)) { // 画面をONにした場合の処理を記載する } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { // 画面をOFFにした場合の処理を記載する } } } }