Android:如果屏幕变暗,如何获取信息?
我想在LCD背光关闭(或变暗)时收到一条消息。您知道,在Android设置中,您可以定义屏幕超时。 例如,15秒后,屏幕进入暗淡模式。 我开发了一个应用程序,在主要活动上有很多按钮。如果显示器开始变暗,用户在触摸屏幕时,通常会点击一个按钮,并调用该按钮的OnClick方法。 这是我想要避免的。因此,当显示器开始进入变暗模式时,我希望收到一些信息。然后我将禁用所有按钮,当显示器离开昏暗模式时,我想启用按钮 通过注册广播接收器,我可以关闭ACTION_SCREEN_并打开ACTION_SCREEN_消息。但当LCD进入变暗模式时,不会发送此消息。 如果还发现一条名为ACTION_DREAMING_STARTED的消息,但当LCD进入变暗模式时,我没有收到该消息Android:如果屏幕变暗,如何获取信息?,android,screen,Android,Screen,我想在LCD背光关闭(或变暗)时收到一条消息。您知道,在Android设置中,您可以定义屏幕超时。 例如,15秒后,屏幕进入暗淡模式。 我开发了一个应用程序,在主要活动上有很多按钮。如果显示器开始变暗,用户在触摸屏幕时,通常会点击一个按钮,并调用该按钮的OnClick方法。 这是我想要避免的。因此,当显示器开始进入变暗模式时,我希望收到一些信息。然后我将禁用所有按钮,当显示器离开昏暗模式时,我想启用按钮 通过注册广播接收器,我可以关闭ACTION_SCREEN_并打开ACTION_SCREEN_
IntentFilter myfilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
myfilter.addAction(Intent.ACTION_SCREEN_OFF);
myfilter.addAction(Intent.ACTION_DREAMING_STARTED);
myfilter.addAction(Intent.ACTION_DREAMING_STOPPED);
BroadcastReceiver mReceiver = new ScreenReceiver();
registerReceiver(mReceiver, myfilter);
你为什么要反对Android的方式?如果屏幕变暗,但用户在屏幕关闭前与之交互,Android会将其唤醒并接收用户的输入。即使你当时拒绝执行任何动作,屏幕还是会醒过来,是吧??无论如何,使用那些
意图
的接收器
是正确的方向。使用此按钮,POS应用程序的收据将被打印。我不想总是呆在屏幕上(这也可能是一种方式)。但如果LCD变暗,在我开始使用设备之前,用户自然会按下它。如果他按了一个按钮,就会打印一张收据…这是我想要避免的…好的,谢谢你的澄清。恐怕这样的广播在Android中根本不存在:好的,非常感谢,最后一篇帖子可能会出现。。。
public class ScreenReceiver extends BroadcastReceiver {
// thanks Jason
public boolean wasScreenOn = true;
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "SOMETHING ");
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// do whatever you need to do here
wasScreenOn = false;
Log.i(TAG, "ACTION_SCREEN_OFF");
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
// and do whatever you need to do here
wasScreenOn = true;
Log.i(TAG, "ACTION_SCREEN_ON");
} else if (intent.getAction().equals(Intent.ACTION_DREAMING_STARTED)) {
// and do whatever you need to do here
wasScreenOn = true;
Log.i(TAG, "ACTION_DREAMING_STARTED");
} else if (intent.getAction().equals(Intent.ACTION_DREAMING_STOPPED)) {
// and do whatever you need to do here
wasScreenOn = true;
Log.i(TAG, "ACTION_DREAMING_STOPPED");
}
}
}