スクリーン(LCD)のON/OFFイベントを検出する方法です。
スクリーンのON/OFFはシステムからBroadcast intentで飛んできますので、それを取得することで対応できます。受信するにはIntentFilterに取得したいIntent(この場合はACTION_SCREEN_OFF)を指定してBroadcast receiverを登録します。例ではOFFの1つだけですが、複数登録することももちろんできます。Activityが有効な間受信したい場合はonCreateで登録し、onDestroyで解除します。受信するとBroadcastReceiverのonReceiveがコールされます。
例)ActivityでスクリーンOFFを検出します
public class SampleAppActivity extends Activity {
private BroadcastReceiver screenStatusReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Receive screen off
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// OFF
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Register a receiver to receive screen status updates
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(screenStatusReceiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
// Unregister a receiver
unregisterReceiver(screenStatusReceiver);
}
}
参考:Android Developers:BroadcastReceiver
No comments:
Post a Comment