Android 如何检测用户早上开始使用手机的时间
我的应用程序可以在一天中的任何时候首次打开。Android 如何检测用户早上开始使用手机的时间,android,google-fit,Android,Google Fit,我的应用程序可以在一天中的任何时候首次打开。 但是,当它打开时,我希望能够告诉用户早上第一次使用手机的时间。如果您想在应用程序运行时收听,请使用BroadcastReceiver。正如Android参考中所指出的,您不能在清单文件中声明这一点。 公共类ScreenReceiver扩展了BroadcastReceiver{ // THANKS JASON public static boolean wasScreenOn = true; @Override public void onRecei
但是,当它打开时,我希望能够告诉用户早上第一次使用手机的时间。如果您想在应用程序运行时收听,请使用BroadcastReceiver。正如Android参考中所指出的,您不能在清单文件中声明这一点。 公共类ScreenReceiver扩展了BroadcastReceiver{
// THANKS JASON
public static boolean wasScreenOn = true;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// DO WHATEVER YOU NEED TO DO HERE
wasScreenOn = false;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
// AND DO WHATEVER YOU NEED TO DO HERE
wasScreenOn = true;
}
}
}
如果你想一直听用户的动作,你需要一个如下的服务
public static class UpdateService extends Service {
@Override
public void onCreate() {
super.onCreate();
// REGISTER RECEIVER THAT HANDLES SCREEN ON AND SCREEN OFF LOGIC
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenReceiver();
registerReceiver(mReceiver, filter);
}
@Override
public void onStart(Intent intent, int startId) {
boolean screenOn = intent.getBooleanExtra("screen_state", false);
if (!screenOn) {
// YOUR CODE
} else {
// YOUR CODE
}
}
}
代码来自。谢谢,我知道我可以运行一个服务,然后保存到数据库中。我当时的想法是,可以有一些Fit或Activities api来告诉我他们什么时候醒来。