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来告诉我他们什么时候醒来。