试图找到一种方法来检测存在的M7。
如果不存在M7,查询CMStepCounter或CMMotionActivity类是否毫无意义?我的猜测是,在具有iOS 7.0的非M7型号上,这些类会获取数据,但效率却不高,并且会消耗更多的电池。
粗略的方法是:
struct utsname systemInfo;
uname(&systemInfo);
model = [[NSString alloc] initWithCString:systemInfo.machine
encoding:NSUTF8StringEncoding];
version = [[NSString alloc] initWithString:[[UIDevice currentDevice] systemVersion]];
if ([model compare:@"iPhone6,1"]) {
}
最佳答案
使用Apple提供的API:
if ([CMStepCounter isStepCountingAvailable]) {
// The device supports step counting
} else {
// The device does not support step counting
}
if ([CMMotionActivityManager isActivityAvailable]) {
// You can use CMMotionActivity
} else {
// Nope, not supported
}
当然,此API仅在iOS 7或更高版本上。因此,如果您需要支持iOS 5或6,则还需要将此代码包装在
CMStepCounter
类的检查中。关于ios - 如何检测是否存在M7(也就是iPhone 5S或更高版本)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18971450/