如果我在我的应用程序中使用加速计,我应该在info.plist中添加所需的设备能力并输入加速计吗?如果是,我应该准确添加什么?
答案 0 :(得分:1)
你应该防御性地编写代码并且总是很好地“降级”应用程序。 例如,如果没有加速度计,您应该考虑应用程序的运行方式。
查看CMMotionManager类 - 特别是在其返回BOOL的accelerometerActive属性中。这是一个例子:
CMMotionManager *manager = [[CMMotionManager alloc] init];
if(!manager.accelerometerAvailable) {
NSLog(@"Accelerometer not available");
} else {
manager.accelerometerUpdateInterval = 1.0;
NSOperationQueue *motionQueue = [[NSOperationQueue alloc] init];
[manager startAccelerometerUpdatesToQueue: motionQueue withHandler:
^(CMAccelerometerData *data, NSError *error) {
NSLog(@"Accelerometer data: %@", [data description]);
}
];
}
答案 1 :(得分:0)
您需要使用
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>accelerometer</string>
</array>
“iOS应用程序编程指南”(第89页,表5-1)中的更多详细信息。 如果您的应用仅检测到设备方向更改,则无需包含此密钥。
答案 2 :(得分:-1)
不,您不需要在info.plist中添加任何内容。 只需确保您的appDelegate实现协议UIAccelerometerDelegate,然后在您的.m文件中执行:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
....
}
- (void) accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration
{
//your accelerometer code
}