999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于iBeacon技術的消息推送機制的應用與實現

2017-08-08 05:18:58馬天時
上海電機學院學報 2017年3期
關鍵詞:內容用戶系統

劉 紅, 胡 鑫, 馬天時

(上海電機學院 電子信息學院, 上海 201306)

?

基于iBeacon技術的消息推送機制的應用與實現

劉 紅, 胡 鑫, 馬天時

(上海電機學院 電子信息學院, 上海 201306)

結合iBeacon技術實現的消息推送,使運行于iOS系統上的應用程序在室內也可以準確地向用戶推送消息。系統采用低功耗藍牙技術——iBeacon技術作為解決方案,來提高iOS應用程序在室內基于位置推送消息的準確度。系統最終實現了在室內通過布置依賴于iBeacon技術的藍牙基站,提高了iOS應用程序在室內基于位置推送消息的準確度。

iBeacon技術; iOS應用; 推送通知; 低功耗; 藍牙基站

據中國產業信息網發布的“2016—2022年中國智能手機行業分析及投資前景預測報告”[1]顯示,中國未來智能手機的數量將繼續以不小的規模增長。不僅在中國,在全球范圍內智能手機的增長都呈現這樣的趨勢,智能手機已逐漸成為人們生活中不可或缺的一部分。智能手機的發展離不開運行于智能手機之上的應用程序,而各種應用程序又可以帶來各種信息。隨著移動互聯網技術的高速發展,應用程序向用戶提供信息的方式也越來越多,本文研究推送消息的機理。

從機制上,以推送的形式發送給用戶的消息主要有兩種[2]:① 本地信息推送。該類消息是基于時間來推送信息。推送的信息強調來自應用程序本身,而采用該推送機制的應用程序常見于GTD(Getting Things Done)類的應用程序,如利用“鬧鐘”、“日歷”設置時間提醒用戶,或在“待辦事項”中設置事件、時間,并在設置的時間通知用戶。采用本地信息推送的應用程序存在推送內容需要用戶事先設置的局限,且只能在規定時間發送通知內容,不能動態地推送消息。② 遠程消息推送。該類消息是基于Apple的APNs(Apple Push Notifiction)或Google的GCM(Google Could Messaging)[3]服務器來實現消息的推送。相較于本地信息推送,其不受時間和內容的約束,可以在任意時間向用戶推送動態的消息內容。但是,無論是本地消息推送還是遠程消息推送,都只是依賴于固有的推送模式,很難實現真正意義上消息推送的智能化。究其原因在于消息推送的時間和內容往往是由消息服務器單方面決定的,不能做到響應以及內容的智能化選擇。

為了能夠更智能地向用戶推送消息,基于位置的服務(Location Based Service,LBS)通過用戶地理位置+遠程消息推送的工作模式,實現基于用戶當前的地理位置向用戶推送位置周邊的信息,實現推送消息內容以及響應的智能化。但是,基于地理位置的消息推送服務往往對GPS的信號依賴性較強,且就消息推送服務而言,工作環境大多在室內,因此,通過用戶的GPS位置來遠程推送消息,并不特別可靠。為此,本文采用了iBeacon技術+遠程消息推送的工作模式來為用戶提供基于室內位置的消息推送服務。

本文基于Apple公司推出的低功耗藍牙(Buletooth Low Energy, BLE)技術——iBeacon技術,結合消息遠程推送機制設計了一個智能消息推送系統。其中,系統的iBeacon基站位置由推送的消息內容決定,以實現針對位置推送內容的合理性;同時,以iBeacon基站作為消息觸發器,實現消息響應的智能化;并且以后臺服務器作為消息的提供者,以iOS應用程序作為信息顯示的窗口[4]。

1 iBeacon技術

iBeacon技術是2013年Apple全球開發者大會(Worldwide Developers Conference, WWDC)大會上推出的一種服務于室內定位和廣告服務的BLE 4.0技術。其擁有如下優點[3-5]:① 免布線。 基于iBeacon技術實現的系統,不可避免地需要涉及到外部硬件的支援,但得益于采用藍牙作為無線通信方式,免去了布線煩惱,降低了后期維護難度。② 低成本。得益于外部硬件的工作模式——“僅需要不斷地向外界廣播自身的iBeacon ID(UUID、Major、Minor)”,故僅需給支持藍牙4.0協議的芯片外接幾個由阻容器件構成的濾波電路和PCB天線,便能實現廣播功能,故可以做到在支援硬件上的低成本化,同時為大型化場景的實施起到一定促進作用。③ 低功耗。無論是裝載應用程序的iOS設備還是作為外部支援的硬件,均得到BLE 4.0技術的保駕護航,滿載動力。④ 室內定位準。基于iBeacon技術實現的系統,大多是運用于室內環境,相交于傳統的定位方式,其抗干擾能力更強、定位更準。

實踐也證明,采用iBeacon技術設計的消息推送系統無論是在性能、功耗上,還是成本上都是不錯的選擇。

1.1 iBeacon技術原理

基于iBeacon技術實現的消息推送系統,其工作機制是當安裝了該應用程序的iOS設備在打開藍牙(硬件支持藍牙4.0)的前提下,靠近外部的iBeacon基站便能獲取到推送消息[5]。

需要注意的是,iBeacon藍牙基站不是偽基站,不會對外推送定制消息。所有手機應用程序獲得的推送消息都是基于iBeacon身份的ID認證通過后的外部數據,它綁定的是數據庫或云服務。iBeacon的工作原理如圖1所示。

圖1 iBeacon系統工作原理

基于這種工作模式,可以為不同的iBeacon藍牙基站制定不同的消息響應內容;由于iBeacon藍牙基站的布置是由系統決定的,系統了解該iBeacon基站附近的情況、需要的內容,故可實現消息的定制化推送。

1.2 iBeacon技術推送消息的實現

本系統首先使用外部硬件——iBeacon藍牙基站來作為消息的觸發器,其工作模式僅僅是無連接地向外界廣播自身的iBeacon ID;然后,iOS操作系統在接收到該iBeacon藍牙基站傳送的信號后先進行解釋,并向等待iBeacon咨詢的所有應用程序發送解釋接收到的內容,當應用程序確定得到的內容屬于自己的咨詢內容,便將得到的內容發送給對應的后臺服務器;最后,服務器根據應用程序傳來的內容,調度相應的消息響應方式推送至用戶的iOS設備上,從而實現系統的功能。

2 iBeacon藍牙基站功能的實現

系統的iBeacon藍牙基站只需要不斷地向外界廣播自己的iBeacon ID,故在外部硬件的設計施工中,在藍牙4.0芯片周圍外接幾個由阻容器件構成的濾波電路和PCB天線即可實現廣播功能。系統的iBeacon藍牙基站選用的是TI公司的CC2541 BLE芯片,搭載于SmartRF開發板上作為iBeacon藍牙基站[3,6],如圖2所示。

圖2 系統的iBeacon藍牙基站

iBeacon藍牙基站采用的是BLE技術,并利用其中的通告幀(Advertising)進行廣播。通告幀為定期發送的幀,只要支持BLE的設備都能接收[6]。iBeacon藍牙基站通過將Apple公司自主格式的數據嵌入到通告幀的有效負載部分,以使廣播內容能被iOS操作系統識別,嵌入的數據如下:

/*Apple Pre-Amble*/

0x4C

0x00

0x02

0x15

除外,該位置還包含了iBeacon藍牙基站自身的iBeacon ID,分別為UUID、Major、Minor。其中:① UUID為全球唯一標識符,即規定為ISO/IEC 11578:1996標準的128位標識符,可以在macOS操作系統的終端鍵入uuidgen命令生成,也可以在Objective-C編程中通過Foundation框架中的NSUUID基類制作。UUID特別應用于當前應用程序且只屬于該應用程序。② Major是發布者自行設定的16位標識符。它進一步確定該iBeacon藍牙基站的使用情景。③ Minor也是發布者自行設定的16位標識符,其允許將iBeacon使用的場景再進行細分。

以上三者的作用可參考表1。其中,UUID的意義是做第1層身份識別,只有接收到的廣播內容中包含表中的UUID,系統的應用程序才會將接收到的廣播內容交付給后臺服務器;由后臺服務器根據不同的Major、Minor組合調度不同的消息響應。

表1 iBeacon ID的應用樣例

iBeacon藍牙基站通告幀部分還包含了一個功率測量(Measure Power)參數,它是iBeacon藍牙基站與接收器(裝載該應用程序的手機)之間相距1 m時的參考接收信號強度(Received Signal Strength Indication,RSSI)。該參數主要用于室內定位,本文中不涉及,故不詳細介紹。

iBeacon藍牙基站自身iBeacon ID在通告幀中嵌入的數據樣例如下:

/*Device UUID(16 BYTES)*/

0x76,0x34,0xA4,0x85,0x17,0x32,0x4B,0x7D,0xAB,0x44,0xD5,0x05,0xD8,0xA2,0x4C,0x60

/*Major Value (2 BYTES)*/

0x00,0x01

/*Minor Value (2 BYTES) */

0x00,0x02

/*calibrated Tx Power*/

0xCD

3 iBeacon應用程序的設計

本消息推送系統運行于iOS平臺,而目前市面上兩大主流手機操作系統分別為iOS和Android,Android平臺擁有與iBeacon技術相似的、由谷歌公司推出的Eddystone技術[7],本文不做討論。

3.1 引入框架設置監視器

iBeacon的本質是一個位置(區域)信息,故iBeacon的功能集都被封裝在與地理位置相關的Core Location Framework框架[8]中,在程序開發時先引入該框架。

在系統工作流程中,iOS操作系統(iOS 7及以上)先對接收到的iBeacon藍牙基站廣播的數據進行解釋,并將得到的信息交付給等待iBeacon咨詢的應用程序。為確保iBeacon藍牙基站廣播的內容能被交付給等待咨詢的應用程序,設置1個監視器[9-10]以實現區域監控,并保證應用程序工作在前、后臺或被殺死的情況下都能響應消息的調度(運用于測距時必須工作在前臺狀態下)。監視器設置如下:

[self.beaconManager requestAlwaysAuthorization];

[self.beaconManager startMonitoringForRegion: [[CL BeaconRegion alloc]

initWithProximityUUID:[[NSUUID alloc]

initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"]

identifier:@"monitored region"]];

為了提高消息的響應速度,接收iBeacon咨詢的應用程序需先驗證UUID,即與監視器中設置的UUID作比較,若確認是發送給自己的咨詢,則將得到的iBeacon ID數據發送給后臺服務器;否則,不做任何應答。

3.2 deviceToken生成與認證

要使推送的消息在系統應用程序不工作的情況下也能接收到推送內容,必須采用遠程推送消息的形式。iOS設備上的所有遠程消息推送都是基于Apple公司提供的APNs服務器轉送給用戶的,為了準確地把消息推送給目的設備,必須注冊生成deviceToken。deviceToken在系統中的作用如圖3所示。圖中,① APNs服務器與iOS設備之間長期存在一個通過SSL加密的長連接,使應用程序在不工作的狀態下也能接收到推送消息;② 當應用程序第一次被安裝在iOS設備上時,應用程序通過iOS設備與APNs之間的SSL連接在APNs服務器中注冊一個deviceToken,用來唯一標識安裝該應用程序的設備;③ deviceToken注冊成功后上傳到系統的后臺服務器,由后臺服務器管理和維護系統服務的設備;除此,在每次上報獲得的iBeacon藍牙基站廣播消息的同時上報設備的deviceToken,使系統知道請求是哪個設備發送的;④ 將deviceToken和要推送的消息交付給APNs服務器,APNs服務器通過查詢deviceToken將消息推送至目的設備。

圖3 deviceToken在系統中的作用

deviceToken是基于應用程序的APP ID(Bundle Identifer)和iOS設備的UUID注冊生成的,在應用程序第1次啟動且接受開啟推送功能時,向APNs服務器發送注冊請求,用來唯一識別安裝該應用程序的設備[11-12],其注冊過程如下:

-(viod)application:(UIApplication*)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *) notificationSettings

{

[application registerForRemoteNotifications];

}

-(viod)application:(UIApplication *) application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

{

NSLog(@"%@", deviceToken);

}

生成的deviceToken樣例如下:

App ID iot4work-gmail-com-s-noyif-aud

App Token 4c453af16bb0e77c43a7cdb411a7bff2

deviceToken生成后,應用程序發送Http Request請求給后臺服務器,在后臺服務器建立對應的用戶表。系統應用程序將獲取到的iBeacon ID和deviceToken向后臺服務器上報,具體如下:

NSURL *url=[ NSURL URLWithString: @"http://ibeaconti.applinzi.com/index.php"];

NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];

NSString*submitContent=@"UUID=_uuid Major=_major & Minor =_minor & Device Token= _deviceToken";

[request setHTTPMethod:@"POST"];

[request setHTTPMethod: [submitContent dataUsingEncoding:NSUTF8StringEncoding]];

這樣,當iBeacon廣播信息傳送至服務器時,就確定了傳入信息的合法性(查詢deviceToken對應的表中是否存在,即deviceToken認證)以及推送消息將到達的目的地(deviceToken)[11]。

3.3 消息推送

對于應用程序上報的iBeacon數據,服務器通過對Major、Minor的組合確定推送的具體消息[13-14],連同device token(向APNs服務器報告消息發送的對象)向APNs服務器打包發送。服務器推送消息流程如圖4所示。

消息服務器與APNs服務器之間仍采用SSL加密協議[15-16]。先生成一個專門用于推送的憑證,并在macOS的keychain中輸出,其目的是將產生的密鑰在服務器和APNs服務器的SSL加密協議中使用。本文使用Google開發的第3方函數庫JavaPNS來處理SSL加密。消息推送至服務器過程如下:

圖4 消息推送流程

Fig.4 Message push flow

import javapns.Push

public class ANPTest

{

public static void main(String[] args)

{

try

{

String Token="4c453af16bb0e77c43a7cdb411a7bff2";

String KEYNAME="KEY.p12";

String KEYPWD="Ab119";

Push.alert("歡迎光臨Cool服裝店,種種精彩為你呈現",KEYNAME,KEYPWD,false,TOKEN);

}

catch(Exception e)

{

System.out.println(e);

}

}

}

消息數據樣式如下:

textTpl="〈xml〉

〈ToUserName〉〈![CDATA[%s]]〉〈/ToUserName〉

〈FromUserName〉〈![CDATA[%s]]〉〈/FromUserName〉

〈MsgType〉〈![CDATA[news]]〉〈/MsgType〉

〈ArticleCount〉1〈/ArticleCount〉

〈Articles〉

〈item〉

〈Title〉〈![CDATA[服裝折扣]]〉〈Title〉

〈Description〉〈![CDATA[最新上市的服裝內容]]〉〈/Description〉

〈PicUrl〉

〈![CDATA[http:/1.ibeaconti.applinzi.com/01.close.jpg]]〉

〈/PicUrl〉

〈Url〉

〈![CDATA[http:/1. ibeaconti.applinzi.com/Html%20Demo/index.html]]〉

〈/Url〉

〈/item〉

〈/Articles〉

〈/xml〉";

當服務器推送的內容到達APNs服務器后,APNs服務器依據deviceToken將消息內容轉發到對應的iOS設備,從而完成消息的遠程推送。

3.4 功能測試

為測試本文設計的系統功能,在iOS設備上進行真機測試[13]。通過給燒寫了不同iBeacon ID的iBeacon藍牙基站上電使其廣播,如圖5所示。

圖5 iBeacon藍牙基站廣播

針對不同的iBeacon藍牙基站觸發推送不同類型的消息[14]。如圖6所示為在鎖屏狀態下得到的消息提示,按照圖中的提示“向右滑動消息”顯示如圖7所示的圖文內容。

系統功能的保障是及時地向用戶推送消息,因此,后臺服務器對事件的響應速度是極為重要指標。在隨機抽樣的24 h內,后臺服務器接收和響應的網絡數據如圖8所示。圖中,在線實時查看推送的視頻內容最高達到了2 MB以上,后臺服務器對事件的響應速度測試整體符合預期目標。

圖6 鎖屏下的提示

Fig.6 Prompt on locked screen

圖7 按照提示操作顯示的內容

圖8 后臺服務器實時網絡流量

4 結 語

本文基于對Apple公司推出的BLE技術——iBeacon技術的認識,結合遠程消息推送的機制,實現了讓用戶間接地去決定服務器何時向客戶端推送何種內容的消息,在功能上基本實現了推送包括文字、聲音、視頻、圖像在內的多種消息內容,在一定程度上實現了推送消息的智能化。讓推送的內容更合理,能被更多的用戶所采納是今后研究的重點。今后將結合用戶的使用習慣、機器學習等手段,提高推送消息的質量與被采納率,真正實現更具現實意義的消息智能化、自動化。

[1] 華經情報網. 2016—2022年中國智能手機行業市場研究及發展前景預測報告 [R/OL].(2016-10-01)[2017-02-28].http://www.huaon.com/story/286129.

[2] 朱克剛. iOS8應用開發實戰205個快速上手的開發技巧 [M].北京:清華大學出版社,2015: 288-296.

[3] Google Cloud Messaging. Energy your users across Android, iOS and Chrome [DB/OL].(2017-02-16)[2017-03-15]. https://developers.google.com/cloud-messaging/?hl=zh-cn.

[4] GILCHRIST C. Learning iBeacon [M]. Birmingham: Packt Publishing, 2014: 23-29, 87-91.

[5] LI Jia, WU Pinghui, CHANG Liping. Spectral properties of near-field evanescent waves scattered from a particulate medium with adjustable boundaries [J]. IEEE Photonics Journal, 2016,8(1):6400109.

[6] LI Jia, CHEN Feinan, CHANG Liping. Correlation between intensity fluctuations of electromagnetic waves scattered from a spatially quasi-homogeneous, anisotropic medium [J]. Optics Express, 2016, 24(21): 24274-24286.

[7] TEXAS INSTRUMENTS. Texas instruments CC2540/41 Bluetooth?low energy software developer’s Guidev 1.3.2 [R].[S.l.]: TEXAS INSTRUMENTS, 2013.

[8] LI Jia, WU Pinghui, CHANG Liping. Determination of correlation function of scattering potential of quasi-homogeneous medium by Young’s pinhole configuration [J]. Journal of Quantitative Spectroscopy and Radiative, 2016, 179 : 126-131.

[9] RICHTER K, KEELEY J. iOS Components and Frameworks: Understanding the Advanced Features of iOS SDK [M]. New Jersey, US:Pearson Education (US),2013: 131-140,319-327.

[10] LI Jia, WU Pinghui, CHANG Liping. Condition for invariant spectrum of an electromagnetic wave scattered from an anisotropic media [J]. Optics Express, 2015, 23(17): 22123-22133.

[11] COX J, JONES N, SZUMSKI J. Professional iOS Network Programming: Connecting the Enterprise to the iPhone and iPad [M]. Birmingham, UK: Wrox Press Ltd, 2014: 137-140.

[12] LI Jia, WU Pinghui, CHANG Liping. Near-zone evanescent waves generated by weak scattering of light from a spatially deterministic medium [J]. Journal of Quantitative Spectroscopy and Radiative Transfer, 2016,170: 1-7.

[13] 李伽,常麗萍,任宏亮,等. 一種攜帶電磁鐵自動充斷電裝置的電動汽車: CN103192732A [P/OL]. 2013-07-10. http://d.wanfangdata.com.cn/Patent/CN201310118962.2/.

[14] LI Jia, WU Pinghui, QIN Yali, et al. Spectrum changes produced by scattering of light with tunable spectral degree of coherence from a spatially deterministic medium [J]. IEEE Photonics Journal, 2016, 8(2): 2600113.

[15] ESTIMOTE. App templates specification [DB/OL]. [2017-03-17]. http://developer.estimote.com/cloud/app-templates/

[16] HEYDON R. 低功耗藍牙開發權威指南 [M]. 陳燦峰,劉嘉,譯. 北京:機械工業出版社, 2014.

Application and Implementation of Message Push Mechanism Based on iBeacon

LIU Hong, HU Xin, MA Tianshi

(School of Electronics Information, Shanghai Dianji University, Shanghai 201306, China)

With message push using iBeacon, application programs running on iOS can accurately deliver messages to indoor users. The system described in this paper uses a low-power Bluetooth technology, iBeacon, as a solution to improve accuracy of indoor message pushing for iOS applications. The system has realized indoor message pushing and improved accuracy of applications under iOS using BlueSations that relies on iBeacon.

iBeacon; iOS application; push notification; low power consumption; bluetooth beacon

2017 -04 -12

:國家自然科學基金項目資助(61205121);上海市大學生創新創業訓練計劃項目資助(A1-5701-17-009-02-63);上海電機學院學科建設項目資助(16YSXK04)

劉紅(1978-),女,副教授,博士,主要研究方向為物聯網技術,E-mail:liuhong@sdju.edu.cn

2095 - 0020(2017)03 -0168 - 07

TP 393.093

A

猜你喜歡
內容用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
內容回顧溫故知新
科學大眾(2022年11期)2022-06-21 09:20:52
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
主要內容
臺聲(2016年2期)2016-09-16 01:06:53
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 亚洲第一成年人网站| 亚洲国产成人自拍| 久久精品中文字幕免费| 色丁丁毛片在线观看| 日本福利视频网站| 99re在线免费视频| 国产农村精品一级毛片视频| 精品久久久久无码| 成人午夜福利视频| 国产无码在线调教| 丰满人妻被猛烈进入无码| 黄色网页在线播放| 免费无码AV片在线观看国产| 欧美日韩va| 国产福利影院在线观看| 中文字幕在线日本| 欧美一级高清片欧美国产欧美| 亚洲看片网| 午夜天堂视频| 91亚洲影院| 99热国产这里只有精品无卡顿" | 91国内外精品自在线播放| 国产一区在线观看无码| 2021国产精品自产拍在线| 亚洲最新网址| 久久特级毛片| 无码中文字幕精品推荐| 无码国内精品人妻少妇蜜桃视频| 亚洲国产看片基地久久1024| 日韩黄色在线| 精品国产自在现线看久久| 97久久人人超碰国产精品| 九九九精品成人免费视频7| 永久免费精品视频| 亚洲天堂首页| 亚洲高清中文字幕| 一级成人欧美一区在线观看| 中文字幕乱码中文乱码51精品| 六月婷婷精品视频在线观看| 天天摸夜夜操| 国产黄色爱视频| 精品亚洲国产成人AV| 永久免费无码日韩视频| 色AV色 综合网站| 免费在线a视频| 99视频在线免费| 精品久久综合1区2区3区激情| 国产精品无码影视久久久久久久 | 国内丰满少妇猛烈精品播 | 国产精品自在拍首页视频8| 日本亚洲最大的色成网站www| 91免费国产高清观看| 欧美一级色视频| 老司机精品一区在线视频| 久久青草视频| 午夜在线不卡| 又爽又大又黄a级毛片在线视频| 亚洲V日韩V无码一区二区| 国产精品免费露脸视频| 色亚洲成人| 亚洲一级毛片在线观| 国产亚洲欧美日本一二三本道| 精品福利国产| 国产成人久久777777| 国产97视频在线| 免费毛片全部不收费的| 日日噜噜夜夜狠狠视频| 亚洲欧美在线看片AI| av在线手机播放| 日韩av无码DVD| 色九九视频| 无码乱人伦一区二区亚洲一| 国内精品久久久久久久久久影视| 欧美在线精品一区二区三区| 91在线视频福利| 宅男噜噜噜66国产在线观看| AV熟女乱| 日韩二区三区| 亚洲欧美日韩天堂| 国产精品2| 亚洲中字无码AV电影在线观看| 国产理论一区|