在你的程序中,你想要检测加速计硬件是否可用,我们需要用 CMMotionManager 的 isAccelerometerAvailable 方法可以检测加速计硬件,还可以用于检测加速计硬件是否正在向程序发送更新 。
首先我们要确认我们导入了要求的头文件和相应的库,在 Build Phases 选项卡中找到并展开 Link Binary with Libraries box,然后在它左下角点击 + 按钮,在框架列表中,选择 CoreMotion.framework 并点击 Add 按钮 。OS 模拟器是不能模拟加速计跟陀螺仪硬件的。但你可以通过 Hardware(硬件)Shake Gesture(摇晃手势)来生成一个摇晃动作 。
#import <UIKit/UIKit.h>
#import <CoreMotion/CoreMotion.h>
@interface Detecting_the_Availability_of_an_AccelerometerAppDelegate: UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
然后我们就可以在我们应用的代理实现类中进行加速计的可用性检测了。
- (BOOL) application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ CMMotionManager *motionManager = [[CMMotionManager alloc] init];
if ([motionManager isAccelerometerAvailable]){NSLog(@"Accelerometer is available.");
} else{
NSLog(@"Accelerometer is not available.");
}
if ([motionManager isAccelerometerActive]){
NSLog(@"Accelerometer is active.");
} else {
NSLog(@"Accelerometer is not active.");
}
self.window = [[UIWindow alloc] initWithFrame:
[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}