如何获得 iOS 重启次数?
How to get iOS reboot times?
重启次数是指当用户重启设备时,重启次数会累积一次。
那么,有什么方法可以获取 iOS 设备的重启时间?
我想你可以通过这种方法找到重启时间间隔。
[[NSProcessInfo processInfo] systemUptime]
我在 this 线程中找到了健康的讨论。
使用此方法,您可以获得自系统上次重启以来的时间。
+ (time_t)getTimeSinceLastBoot {
struct timeval boottime;
int mib[2] = {CTL_KERN, KERN_BOOTTIME};
size_t size = sizeof(boottime);
time_t now;
time_t uptime = -1;
(void)time(&now);
if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0)
{
uptime = now - boottime.tv_sec;
}
return uptime;
}
要获得确切的日期,您可以使用上述方法:
long totalSeconds = [self getTimeSinceLastBoot];
NSDate *dateNow = [NSDate date];
NSDate *date = [NSDate dateWithTimeInterval:-totalSeconds sinceDate:dateNow];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [formatter stringFromDate:date];
通过上述方法,您可以定期将时间保存到持久存储中的某个位置,并每次检查,如果您下次得到相同的时间,则说明设备没有重启。如果您得到不同的时间,则只需将该时间添加到您的数据库中。
不要忘记包含以下文件:
#include <sys/param.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/sysctl.h>
#include <sys/proc.h>
#include <sys/socket.h>
重启次数是指当用户重启设备时,重启次数会累积一次。
那么,有什么方法可以获取 iOS 设备的重启时间?
我想你可以通过这种方法找到重启时间间隔。
[[NSProcessInfo processInfo] systemUptime]
我在 this 线程中找到了健康的讨论。
使用此方法,您可以获得自系统上次重启以来的时间。
+ (time_t)getTimeSinceLastBoot {
struct timeval boottime;
int mib[2] = {CTL_KERN, KERN_BOOTTIME};
size_t size = sizeof(boottime);
time_t now;
time_t uptime = -1;
(void)time(&now);
if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0)
{
uptime = now - boottime.tv_sec;
}
return uptime;
}
要获得确切的日期,您可以使用上述方法:
long totalSeconds = [self getTimeSinceLastBoot];
NSDate *dateNow = [NSDate date];
NSDate *date = [NSDate dateWithTimeInterval:-totalSeconds sinceDate:dateNow];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [formatter stringFromDate:date];
通过上述方法,您可以定期将时间保存到持久存储中的某个位置,并每次检查,如果您下次得到相同的时间,则说明设备没有重启。如果您得到不同的时间,则只需将该时间添加到您的数据库中。
不要忘记包含以下文件:
#include <sys/param.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/sysctl.h>
#include <sys/proc.h>
#include <sys/socket.h>