我该如何像'Moment'应用程序一样跟踪iPhone的使用情况?

3
如何追踪iPhone的总使用情况,即使我们的应用程序在后台运行(未被强制终止)。最近我发现了一个名为Moment的应用程序,它可以追踪您的iPhone使用情况,即使该应用程序在后台运行。实际上,他们正在使用位置服务来获取执行时间。我的问题是,当他们获取执行时间时,他们如何确定用户的iPhone屏幕锁定或解锁?
我有代码可以检查屏幕是否锁定或解锁。
-(void)registerAppforDetectLockState {

    int notify_token;
    notify_register_dispatch("com.apple.springboard.lockstate", &notify_token,dispatch_get_main_queue(), ^(int token) {

        uint64_t state = UINT64_MAX;
        notify_get_state(token, &state);

        if(state == 0) {
            NSLog(@"unlock device");

            UIAlertView *errorAlert = [[UIAlertView alloc]
                                       initWithTitle:@"unlock device" message:@"test" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [errorAlert show];


        } else {
            NSLog(@"lock device");

            UIAlertView *errorAlert = [[UIAlertView alloc]
                                       initWithTitle:@"lock device" message:@"test" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [errorAlert show];

        }

    });
}

但是这段代码只在应用程序在前台运行时才能正常工作。
1个回答

1

你的代码仅在应用程序在前台运行时才起作用,因为当应用程序进入后台时它不会被调用,你需要使用其中一个后台模式来唤醒你的应用程序并执行你的代码。


后台模式,链接无法打开。 - Sheshnath
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Imran
您可以在项目设置的“功能”选项卡中声明后台模式。启用“后台模式”选项会将UIBackgroundModes键添加到应用程序的Info.plist文件中。选择一个或多个复选框会将相应的后台模式值添加到该键中。 - Imran
1
好的,但我认为这不会有帮助。后台模式是为了获取应用程序的执行时间,使用位置更新我已经获取了应用程序的执行时间,因此不需要后台模式。 - Sheshnath
@Imran,您想要跟踪您开发的应用程序还是所有应用程序?所有应用程序都不行,但是您的应用程序可以,正如我之前提到的,使用MDM与否并不重要。 - Imran
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接