スクリーン(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