應用進入後台監測搖一搖事件《轉》

2022-08-27 14:21:11 字數 2385 閱讀 7341

現在網上介紹的ios搖一搖功能,基本是以借助系統的shaketoedit功能來實現,什麼是shaketoedit?看下圖應該就能懂:

怎麼實現?請看以下**:

[objc]view plain

copy

//viewcontroller 加入以下兩方法  

-(bool)canbecomefirstresponder  

-(void)motionended:(uieventsubtype)motionwithevent:(uievent *)event  

}  //在viewdidview中呼叫以下訊息,主動讓當前controller成為firstresponder  

[selfbecomefirstresponder];  

//已經不需要其它多餘**了  

使用加速儀與使用相機,聲音之類不同,不需要經過使用者允許,也沒有訪問限制,當然也沒什麼危害,是個基本配備。那要怎麼做?下面費話不多說,直接開始吧:

第一步,為專案target新增coremotion.framework

第二步,引入標頭檔案

[objc]view plain

copy

#import 

第三步,使用cmmotionmanager

[objc]view plain

copy

@property (strong,nonatomic) cmmotionmanager *motionmanager;  

注意,當前應用只能有乙個cmmotionmanager例項,多個例項會影響接收速率

第四步,例項並初始化加速儀

[objc]view plain

copy

self.motionmanager = [[cmmotionmanageralloc]init];//一般在viewdidload中進行  

self.motionmanager.accelerometerupdateinterval = .1;//加速儀更新頻率,以秒為單位  

[objc]view plain

copy

-(void)startaccelerometer  

}];  

}  -(void)outputaccelertiondata:(cmacceleration)acceleration  

);  

}      

}    

最後一步

[objc]view plain

copy

[[nsnotificationcenterdefaultcenter]addobserver:self  

selector:@selector(receivenotification:)  

[[nsnotificationcenterdefaultcenter]addobserver:self  

selector:@selector(receivenotification:)  

[objc]view plain

copy

[[nsnotificationcenterdefaultcenter]removeobserver:self  

[[nsnotificationcenterdefaultcenter]removeobserver:self  

[objc]view plain

copy

//對應上面的通知中心**的訊息接收  

-(void)receivenotification:(nsnotification *)notification  

else}  

至此,所有使用加速儀實現搖一搖功能的實現方式已介紹完畢。

一些可改進的地方:

1) 搖一搖動作捕捉——如果僅是以加速度大小來判定,有可能使用者突然快速移動手機時就啟用了搖動,但使用者比較稍稍慢一些來回晃動手機卻不會啟用,可能與使用者期望的稍微有出入。系統的shaketoedit就能做得比較到位。

我們可以結合定時器與加速度的正反方向來更精確判定使用者的搖一搖動作,例如:綜合加速度改為帶方向的向量,然後當1.5秒內有相反兩個方向大於某個數值的加速度,才算為乙個搖動行為。這個1.5秒時間需要通過實際測試來取值,當某次取得的加速度值大於某個值開始統計下乙個加速度向量,此值也需要實測來取值,可能1.5左右就夠了。

螢幕觸控事件,搖一搖晃動事件

uiview支援觸控事件 因為繼承於uiresponder 而且 支援多 點觸控。需要定義uiview 子類,實現觸控相關的 方法。1.建立根檢視控制器 原 設定根檢視控制器 mainviewcontroller mainvc mainviewcontroller alloc init window...

不會吧,這也行?iOS後台鎖屏監聽搖一搖

目錄後台定位許可權 系統搖一搖,是否可行?文章小結 參考文章 demo 鏈結 玩歸玩,鬧歸鬧,開始 code,不開玩笑。接下來,開始自己的探索之旅。系統搖一搖 方法 void motionbegan uieventsubtype motion withevent uievent event好,我們先...

創新應用 點心通訊錄 換名片只需搖一搖!

點心通訊錄相信大部分人都不陌生,但是還是要跟大家推薦一下,因為想讓更多的朋友都用上點心通訊錄。讓更多朋友體驗到點心強大有趣的功能,方便我們的生活。點心通訊錄獨具的 快 準 有趣 三個特色,會讓手機基礎的通訊錄功能變的更便利 實用。部分功能介紹 1 搖一搖,輕鬆換名片!與友人一起輕晃手機即可交換名片,...