iOS開發- 藍牙后臺接收數據(BLE4.0)

最近在做一個藍牙相關的項目, 需要在應用進入后臺, 或者手機屬于鎖屏狀態的情況下, 仍然保持藍牙連接, 并且能正常接收數據。

本來以后會很麻煩, 但是學習了下..發現就2步而已。簡單的不能再簡單了。


好了。下面是具體實現辦法。


1.在xxx-info.plist文件中, 新建一行 ?Required background modes?, 加入下面兩項。

App shares data using CoreBluetooth?和?App communicates using CoreBluetooth

如圖所示:



加入這個項后, 你會發現, 當應用進入后臺后, 藍牙還是保持連接的。

但是, 進入后臺后, 雖然應用還掛著, 能夠正常接收數據。但是, ?來數據了, 如果需要我們實時響應, 那就要用到推送了。

也就是, 當數據來的時候, 彈出一個提示框, 提示用戶來數據了。


2. 設置本地推送

這里的方法寫在AppDelegate.m中。 ?receiveData對應你接收到數據的響應函數。

[cpp]?view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. -(void)receiveData:(NSData*)data??
  2. {??
  3. ????NSLog(@"收到數據了");??
  4. ??????
  5. ????//收到數據,?設置推送??
  6. ????UILocalNotification?*noti?=?[[UILocalNotification?alloc]?init];??
  7. ????if?(noti)??
  8. ????{??
  9. ????????//設置時區??
  10. ????????noti.timeZone?=?[NSTimeZone?defaultTimeZone];??
  11. ????????//設置重復間隔??
  12. ????????noti.repeatInterval?=?NSWeekCalendarUnit;??
  13. ????????//推送聲音??
  14. ????????noti.soundName?=?UILocalNotificationDefaultSoundName;??
  15. ????????//內容??
  16. ????????noti.alertBody?=?@"接收到數據了";??
  17. ????????noti.alertAction?=?@"打開";??
  18. ????????//顯示在icon上的紅色圈中的數子??
  19. ????????noti.applicationIconBadgeNumber?=?1;??
  20. ????????//設置userinfo?方便在之后需要撤銷的時候使用??
  21. ????????NSDictionary?*infoDic?=?[NSDictionary?dictionaryWithObject:@"name"?forKey:@"key"];??
  22. ????????noti.userInfo?=?infoDic;??
  23. ????????//添加推送到uiapplication??
  24. ????????UIApplication?*app?=?[UIApplication?sharedApplication];??
  25. ????????[app?scheduleLocalNotification:noti];??
  26. ????}??
  27. }??

[cpp]?view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. #pragma?mark?-?接收到推送??
  2. -?(void)application:(UIApplication?*)application?didReceiveLocalNotification:(UILocalNotification*)notification??
  3. {??
  4. ????UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"來電提示"??
  5. ????????????????????????????????????????????????????message:notification.alertBody??
  6. ???????????????????????????????????????????????????delegate:nil??
  7. ??????????????????????????????????????????cancelButtonTitle:@"接聽"??
  8. ??????????????????????????????????????????otherButtonTitles:@"掛斷",nil];??
  9. ????[alert?show];??
  10. ????//這里,你就可以通過notification的useinfo,干一些你想做的事情了??
  11. ????application.applicationIconBadgeNumber?-=?1;??
  12. }?

轉載于:https://www.cnblogs.com/AlvinCrash/p/5379458.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257482.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257482.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257482.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

貪心(數據結構):COGS 468. [NOI2010]超級鋼琴

★★★☆ 輸入文件:piano.in 輸出文件:piano.out 簡單對比 時間限制:2 s 內存限制:512 MB 超級鋼琴 【問題描述】 小Z是一個小有名氣的鋼琴家,最近C博士送給了小Z一架超級鋼琴,小Z希望能夠用這架…

java實現選擇排序 帶打印,選擇排序算法的JAVA實現

選擇排序算法的JAVA實現package Utils.Sort;/***利用選擇排序法對數組排序,數組中元素必須實現了Comparable接口。*/public class ChooseSort implements SortStrategy{/***對數組obj中的元素以選擇排序算法進行排序*/public void sort(Comparable[] obj){if (obj …

angularjs初始化時不顯示模板內容, 不顯示html, 不顯示template

template的內容可能在需要的數據準備好之前就顯示出來了, ng-cloak可以解決這個問題 ng-cloak <div id"template1" ng-cloak>{{ hello }}</div> <div id"template2" class"ng-cloak">{{ world }}</div>

左右箭頭滑動列表

//slideshow 左右箭頭滑動一組li焦點圖 autoSlide();function autoSlide(){clearAutoSsetInterval(autoFunS,5000);}function autoFunS(){var loc$(".slideshow-box ul").css("left");if(loc"-2370px"){loc"1185";}var newlocparseInt…

20159206《網絡攻防實踐》第四周學習總結

20159206《網絡攻防實踐》第四周學習總結 教材學習內容總結 本章主要介紹了網絡嗅探和協議分析 網絡嗅探是一種常用的竊聽技術&#xff0c;利用計算機的網絡接口截獲目的地為其他計算機的數據報文&#xff0c;以監聽數據流中所包含的用戶賬戶密碼或私密信息等。 網絡泄灘具有很…

四六級php,詳解四六級查詢API+網頁

這個API是第三方API&#xff0c;第三方API的工作原理大都基于此&#xff0c;本文主要起一反三之作用&#xff0c;代碼的不處周之還望及時指出。開發環境&#xff1a;WinServer2012 php7.0 Apache2.4.8思路&#xff1a;向官方查詢界面傳遞參數&#xff0c;使用curl抓取結果網頁…

終于把joomla 的 protostar 模版的菜單,從垂直改到水平了

protostar-applying-menu-class-suffixes-horizontal-vs-vertical-menus.html joomla 3.7.5 附帶的這個template , 菜單丑的要死。 估計是新改的。 看網上的其他站點都沒這毛病。 最后終于找到解決方法了。“ nav-pills“ 前面是有空格的 To make the menu horizonal, you can …

Find non-overlap jobs with max cost

Given a set of n jobs with [start time, end time, cost] find a subset so that no 2 jobs overlap and the cost is maximum.Job: &#xff08;start_time, end_time] --- cost 如果只是求maxCost, 一維就可以做。 但是如果要知道有選了哪些job&#xff0c;則需要存成二維。…

php 跨區域,PHP跨時區的功能實現

現在有一個跨時區的應用&#xff0c;不同時區登錄的用戶需要看到自己時區的時間&#xff0c;同時也要能夠進行時區的切換。我的思路是&#xff0c;系統中所有存儲的時間都是GMT(UTC)時間&#xff0c;用戶登錄時&#xff0c;根據用戶所在的時區進行對應的顯示。首先了解一下PHP中…

js實現向上滾動效果

源碼&#xff1a;<style type"text/css"> #up_zzjs{border:1px solid #ccc;width:170px;height:182px;line-height:20px;overflow:hidden;} #up_zzjs #up_li{list-style-type:none;margin:0;padding:0;margin-left:6px;} /*系統支持ie8就選line-heigh…

利用數據的商業智能分析工具

商業智能可以定義為獲取和轉換原始數據的技術和工具&#xff0c;這些信息可以為業務運營提供有意義的好處。 商業智能的發展 商業智能&#xff08;BI&#xff09;是一個可追溯到19世紀中期的術語&#xff0c;基本上是一樣的定義。但作為結構化數據的自動化處理的參考&#xff0…

管理之道(三) - 不要吝惜贊美

多一句贊美 人們相互希望得越多&#xff0c;想要給予對方的越多……就必定越親密。   幾天前&#xff0c;我和一位朋友在紐約搭計程車&#xff0c;下車時&#xff0c;朋友對司機說&#xff1a;“謝謝&#xff0c;搭你的車十分舒適。”這司機聽了愣了一愣&#xff0c;然后說&a…

優酷視頻整段代理php,thinkphp仿優酷帶數據源碼|php仿優酷視頻源碼帶后臺功能強大...

本項目是仿優酷官網&#xff0c;優酷官網是一個集多種知識面為一體的網站&#xff0c;能全面的鍛煉我們的技能,所以我們決定仿優酷網。本項目后臺主要實現了&#xff1a;用戶管理、分類管理、視頻管理、評論管理、權限管理、輪播管理、網站配置和廣告管理以及登錄退出等模塊。前…

Centos7安裝Oracle JDK

查看Linux是否自帶的JDK&#xff0c;如有openJDK&#xff0c;則卸載1 java -version 1 rpm -qa | grep -E ^open[jre|jdk]|j[re|dk] 卸載openjdk1 su root 2 3 yum -y remove java java-1.7.0-openjdk 下載oracle jdk1 wget --no-cookies --header "Cookie: oraclelice…

前端每周清單第 30 期:WebVR 指南,Vue 代碼分割范式,理想的 React 架構特性

前端每周清單專注前端領域內容&#xff0c;以對外文資料的搜集為主&#xff0c;幫助開發者了解一周前端熱點&#xff1b;分為新聞熱點、開發教程、工程實踐、深度閱讀、開源項目、巔峰人生等欄目。歡迎關注【前端之巔】微信公眾號&#xff08;ID&#xff1a;frontshow&#xff…

Oracle(3)——Oracle圖形界面工具創建數據庫

具體操作步驟詳情&#xff1a; 1.圖形界面工具首界面 Database Configuration Assistant 點擊下一步 2.默認 點擊下一步 3.默認 點擊下一步 4.設置全局數據庫名、SID 為新建數據庫起一個“全局數據庫名”&#xff0c;比如這里對數據庫名和SID&#xff1a;FKXT 點擊下一步 5.設置…

rsa 加密 js php,security.js+RSA做出加密功能

這次給大家帶來security.jsRSA做出加密功能&#xff0c;的注意事項有哪些&#xff0c;下面就是實戰案例&#xff0c;一起來看一下。在項目中遇到要對用戶輸入的密碼進行RSA加密的需求&#xff0c;總結一下實現過程&#xff1a;JS rsa加密加密//引入security.js文件var btn doc…

多線程面試題系列(12):多線程同步內功心法——PV操作上

上面的文章講解了在Windows系統下實現多線程同步互斥的方法&#xff0c;為了提高在實際問題中分析和思考多個線程之間同步互斥問題的能力&#xff0c;接下來將講解PV操作&#xff0c;這也是操作系統中的重點和難點。本文將會先簡要介紹下PV操作的來源和基本使用方法&#xff0c…

兩離散序列卷積matlab,離散序列卷積和(用matlab實現)

數字信號處理實驗報告實驗一離散時間序列卷積和MATLAB實現(一)實驗目的&#xff1a;學會用MATLAB對信號與系統分析的方法&#xff0c;理解離散序列卷積和的計算對進行離散信號與系統分析的重要性。(二)實驗原理&#xff1a;1、離散時間序列f1(k)和f2(k)的卷積和定義&#xff1a…

linux命令學習-4-lsof

lsof&#xff08;list open files&#xff09;是一個列出當前系統打開文件的工具。在linux環境下&#xff0c;任何事物都以文件的形式存在&#xff0c;通過文件不僅僅可以訪問常規數據&#xff0c;還可以訪問網絡連接和硬件。 在終端下輸入lsof即可顯示系統打開的文件&#xff…