一旦用户在设备上点击两次,就需要执行该 *** 作.
我启用了后台模式:应用功能中的位置更新
并在AppDelegate中设置AccelerometerUpdatesToQueue函数:
let manager = cmmotionmanager()func application(application: UIApplication,dIDFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {// OverrIDe point for customization after application launch.if manager.accelerometeravailable { manager.accelerometerUpdateInterval = 0.01 manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) { [weak self] (data: CMAccelerometerData!,error: NSError!) in println(data.acceleration.z) }} return true}
控制台按预期打印出acceleration.z值,但是一旦按下主页按钮,控制台就会打印停止.
我在网上搜索了一个关于如何做到这一点的示例代码,我知道这是可能的…因为我们都知道应用程序“Knock Knock to unlock”,但我似乎无法找到一段示例代码对斯威夫特来说.
解决方法 我得到了它的工作!这是我的解决方案,随意提出改进:)class AppDelegate: UIResponder,UIApplicationDelegate { var window: UIWindow? let manager = cmmotionmanager() var knocked : Bool = false let motionUpdateInterval : Double = 0.05 var knockreset : Double = 2.0 func application(application: UIApplication,dIDFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { if manager.deviceMotionAvailable { manager.deviceMotionUpdateInterval = motionUpdateInterval // seconds manager.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue()) { [weak self] (data: CMDeviceMotion!,error: NSError!) in if (data.useracceleration.z < -0.7) || (data.useracceleration.z > 0.7) { // Check if device is knocked // Check for double knock if self!.knocked == false { // First knock println("First Knock") self!.knocked = true }else{ // Second knock println("Double Knocked") self!.knocked = false self!.knockreset = 2.0 // Action: } } // Countdown for reset action (second knock must be within the knockreset limit) if (self!.knocked) && (self!.knockreset >= 0.0) { self!.knockreset = self!.knockreset - self!.motionUpdateInterval }else if self!.knocked == true { self!.knocked = false self!.knockreset = 2.0 println("reset") } } } return true }总结
以上是内存溢出为你收集整理的ios – Swift CoreMotion在后台检测设备上的Tap或Knock全部内容,希望文章能够帮你解决ios – Swift CoreMotion在后台检测设备上的Tap或Knock所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)