所需的设备功能

时间:2010-11-19 20:58:26

标签: iphone xcode ios4

如果我在我的应用程序中使用加速计,我应该在info.plist中添加所需的设备能力并输入加速计吗?如果是,我应该准确添加什么?

3 个答案:

答案 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
}