7

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"]) {

}
4

1 に答える 1

17

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クラスのチェックでラップする必要もあります。

于 2013-09-24T01:39:00.873 に答える