想知道是否可以檢查設備(iPhone,iPad,iPod,即iOS設備)是否有陀螺儀?如何檢查設備上是否有陀螺儀?
6
A
回答
13
- (BOOL) isGyroscopeAvailable
{
#ifdef __IPHONE_4_0
CMMotionManager *motionManager = [[CMMotionManager alloc] init];
BOOL gyroAvailable = motionManager.gyroAvailable;
[motionManager release];
return gyroAvailable;
#else
return NO;
#endif
}
也看到我這篇博客就知道,你可以在iOS設備 http://www.makebetterthings.com/blogs/iphone/check-ios-device-capabilities/
3
CoreMotion的運動經理類內置了用於檢查硬件可用性屬性檢查不同的能力。 Saurabh的方法會要求您在每次發佈帶有陀螺儀的新設備(iPad 2等)時更新您的應用程序。下面是使用蘋果的記錄屬性檢查陀螺儀可用性的示例代碼:
CMMotionManager *motionManager = [[[CMMotionManager alloc] init] autorelease];
if (motionManager.gyroAvailable)
{
motionManager.deviceMotionUpdateInterval = 1.0/60.0;
[motionManager startDeviceMotionUpdates];
}
更多信息,請參見the documentation。
1
我相信@Saurabh和@Andrew Theis的答案只是部分正確的。
這是一個更完整的解決方案:
- (BOOL) isGyroscopeAvailable
{
// If the iOS Deployment Target is greater than 4.0, then you
// can access the gyroAvailable property of CMMotionManager
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_0
CMMotionManager *motionManager = [[CMMotionManager alloc] init];
BOOL gyroAvailable = motionManager.gyroAvailable;
[motionManager release];
return gyroAvailable;
// Otherwise, if you are supporting iOS versions < 4.0, you must check the
// the device's iOS version number before accessing gyroAvailable
#else
// Gyro wasn't available on any devices with iOS < 4.0
if (SYSTEM_VERSION_LESS_THAN(@"4.0"))
return NO;
else
{
CMMotionManager *motionManager = [[CMMotionManager alloc] init];
BOOL gyroAvailable = motionManager.gyroAvailable;
[motionManager release];
return gyroAvailable;
}
#endif
}
凡SYSTEM_VERSION_LESS_THAN()
在this StackOverflow answer定義。
+0
I通過查看這個頁面上的所有答案,我完全感到困惑。 @jonsibley「gyroAvailable」方法只適用於IOS4 +嗎? – ShayanK 2012-04-23 11:32:07
相關問題
- 1. 如何在無陀螺儀的設備上創建CMRotationMatrix
- 2. 陀螺儀Android
- 3. 使用陀螺儀檢測360°iOS設備旋轉
- 4. iPhone 4沒有陀螺儀?
- 5. 沒有陀螺儀的VR
- 6. iPhone/iPad陀螺儀
- 7. iOS陀螺儀API
- 8. 使用陀螺儀來檢測物體是否直線
- 9. 如何平滑陀螺儀輸入?
- 10. 如何在Android中使用陀螺儀
- 11. 如何從onResume訪問陀螺儀?
- 12. 陀螺儀太敏感
- 13. 陀螺儀驅動sphero
- 14. iOS的陀螺儀,使
- 15. Android陀螺儀示例?
- 16. 陀螺儀使用Cocos2d-x
- 17. 鈦中的陀螺儀值
- 18. Android Studio陀螺儀示例?
- 19. iOS - 陀螺儀樣本
- 20. Android-陀螺儀傳感器
- 21. Unity3d陀螺儀環顧
- 22. Smartwatch 2的陀螺儀是否不具有響應性?
- 23. 手機上的陀螺儀漂移
- 24. CMMotionManager和iPhone 4上的陀螺儀
- 25. 谷歌街景旋轉相機與設備陀螺儀
- 26. 陀螺儀/指南針和設備方向
- 27. android detect是陀螺儀可用
- 28. iPad有加速計或陀螺儀嗎?
- 29. 陀螺儀不顯示任何漂移
- 30. 是否可以使用iPhone陀螺儀進行編程?
使用#ifdef有什麼優勢? – jonsibley 2012-01-07 22:35:31
@jonsibley CMMotionManager僅適用於iPhone OS 4 ..如果我們嘗試在早期的操作系統上使用它,它將無法編譯 – Saurabh 2012-01-08 09:25:52
明白了,謝謝。 – jonsibley 2012-03-24 13:10:28