More Related Content
Similar to Android studio 之 i beacon 藍芽應用開發學習 (20)
Android studio 之 i beacon 藍芽應用開發學習
- 5. 學習程式的歷程
學生時期:打電動,沒有日夜的界限
二專畢業:初次接觸 dBase、Lotus 使用 Clipper 做經銷存、應收付帳系統
工作階段1:接觸 Office,開始使用Excel(Lotus)
工作階段2:品保工作,自學圖表、函數、VBA,做出自動化品管系統
興趣展開:自學VB,製作ERP系統,接觸Linux、FreeBSD,自學架設Server
諸葛魔斌誕生
大學時期:半自學 Android App(Java)、C#、iOS App(Swift)
工作轉變:成立諸葛魔斌科技創作室,接案學習,救國團電腦資訊講師
實績:
- 6. Android Studio 之 iBeacon 藍芽應用開發學習
維基百科---(https://zh.wikipedia.org/wiki/IBeacon)
iBeacon是蘋果公司提出的「一種可以讓附近手持電子設備檢測到的一種新的低功耗、低成本信號
傳送器」的一套可用於室內定位系統的協議。這種技術可以使一個智慧型手機或其他裝置在一個
iBeacon基站的感應範圍內執行相應的命令。
這是幫助智慧型手機確定他們大概位置或環境的一個應用程式。在一個iBeacon基站的幫助下,智
慧型手機的軟體能大概找到它和這個iBeacon基站的相對位置。iBeacon能讓手機收到附近售賣商
品的通知,也可以讓消費者不用拿出錢包或信用卡就能在銷售點的POS機上完成支付。iBeacon技
術通過低功耗藍牙(BLE),也就是智能藍牙來實現。
iBeacon為利用低功耗藍牙可以近距離感測的功能來傳輸通用唯一識別碼的一個app或作業系統。
這個識別碼可以在網上被查找到用以確定設備的物理位置或者可以在設備上觸發一個動作比如在社
交媒體簽到或者推送通知。
各種供應商創造了不同形式的iBeacon硬體設備,包括小硬幣電池設備,隨身碟和藍牙4.0通用加密
狗。
- 11. 應用
其實 iBeacon 是 iOS 中延伸定位服務的一種新技術,iBeacon基地台透過低功耗藍牙技術
(Bluetooth Low Energy,也就是Bluetooth Smart)建立一個訊號接收區域,只要我們帶著 iOS
裝置走入這個訊號區域後,相對應的 APP 就會發出提醒詢問我們是否要接受訊號,一旦接受
iBeacon 訊號後,他就會偵測我們所在的位置,除了室內定位之外,還可以透過無線感應器和藍牙
通知我們附近有什麼樣的產品或是距離櫃台的距離。
Android Studio 之 iBeacon 藍芽應用開發學習
- 13. 只是,使用時 iBeacon 時,還是必須透過 APP 才可以接收,也因此我們的手機必須下載相對應的
APP,才能使用這項功能。而特別的是 iPhone、iPad、iPod touch 不只可以接受低功耗藍牙的訊
號,同時也可以成為發送器,也因此讓全球的 iOS 裝置可以透過 iBeacon 串接起來。但如果你以
為 iBeacon 技術只有 Apple iOS 系統使用的話,那可就大錯特錯囉!
Android Studio 之 iBeacon 藍芽應用開發學習
- 15. 除了 iOS 和 Android 兩大系統都開始推廣 Beacon 技術的優勢之外,它還有個絕對優勢就是「省
電」,之前的定位服務大多是以 GPS全球定位系統,它必須要透過衛星才能定位,而且戶外的定位
是最清晰精準的,但只要打開有 GPS 的APP,我們就會發現手機電力快速下降。至於 Beacon,
它使用的是低功耗藍牙,所以並耗電量低,在室外也許沒有什麼用途,但只要有接收器就可以快速
定位,並大幅度提升室內定位的精準度。
Android Studio 之 iBeacon 藍芽應用開發學習
- 16. 想將 iBeacon 技術應用在生活中,並不是只要開啟藍牙就可以使用,而須要搭配 APP,只要在室
內放置 iBeacon 發送器,並開啟我們 iPhone、iPad…等裝置的藍牙,透過相對應的 APP,我們就
可以接收到訊號進而收到訊息。只是,截至目前為止,每一款發送器的外型、續航力…等都不一樣,
甚至連相對應的 APP 都不一樣,也為這個新市場投下了新商機。
Android Studio 之 iBeacon 藍芽應用開發學習
- 17. 有了 iBeacon,以後當我們走進一家有使用 iBeacon 的商店,只要手機接收到藍牙訊號,APP 就
會自動推播通知我們店裡有什麼特價品、有哪些是我們購物清單上要購買的東西。
未來博物館也可以陳設發送器,這麼一來就可以透過 iBeacon 為民眾進行導覽。
Android Studio 之 iBeacon 藍芽應用開發學習
- 18. 此外,知名的線上交易支付平台 PayPal 也將把 iBeacon 應用在實際生活中了!只要商店、景點或
展覽有設置 iBeacon 發送器,我們就可以透過它支付小費、門票囉!
從這些應用看來,我們會發現 iBeacon 在生活中的應用可以說是相當廣泛,而且是很實際的應用,
也將為生活帶來更多的便利,也難怪眾多科技網站都認為 iBeacon 未來很可能會取代 NFC 功能,
並將帶來生活的另一番變革了!
Android Studio 之 iBeacon 藍芽應用開發學習
- 19. 說明
最廣義而且最簡單的 Bluetooth Beacon 在實作上並不困難。只要使用一顆合乎 Bluetooth Smart
(以前叫做 BLE)規格的晶片,然後撰寫 firmware 讓它可以在某個Bluetooth Service 中,「定
期」發送一段「特定格式」廣播訊息。此時,手機端的 App 則透過 Bluetooth Lib,在前景或背景
模式中,去掃描該 Bluetooth Service 中所有的廣播訊息,然後將這些廣播訊息的內容送到特定的
網路服務中去比對,然後再根據比對的結果進行對應的工作。這就是一種 Beacon 應用。
然而在這種看似單的流程中,有三個主要變數會影響使用者對Beacon 應用的使用體驗:一個是訊
息廣播的格式與內容,二是訊息廣播的間隔密度,三是廣播的訊號強度。
舉例來說,Apple 的 iBeacon 主要目的之一,是結合提供區域商店的精準推撥廣告服務,或是進行
精準的室內定位。在這個情境下,App 多數會在背景來執行對 iBeacon 廣播訊息的掃描。此時,
廣播訊息之間的間隔密度就不宜太長,才不會影響App 在背景偵測 iBeacon 的反應性。這也就是
為什麼iBeacon 的規範中,對廣播訊息的間隔要求不得超過0.15 秒。當然,廣播訊息間隔越短,耗
電量就越多。此時,對Beacon 供電方式的設計,以及Beacon 的體積,就會形成另外一種限制。
這也就是為什麼iBeacon 的硬體,在加入足夠的電池之後,都無法做得太小的主要原因。
Android Studio 之 iBeacon 藍芽應用開發學習
- 20. 其次,Beacon 所廣播的ID 要如何具備唯一性,或者足夠的防仿冒性,則與Beacon 的用途有關。
如果Beacon 只是用來讓讓商家提供互動廣告與微定位服務,那防仿冒性的要求自然不高。但如果
Beacon 打算用來作為一種身分識別,那安全性就是另一種議題。
最後,廣播訊息的強度,則與Beacon 的應用領域有關係。類似iBeacon 這樣的商家微定位服務,
並不需要將訊號打太遠。但是,對於失物協尋或者社會安全的的服務,距離則是一個重要的關鍵。
mBeacon 就是在綜合上述考量下的產物。因此,它提供了可程式化的廣播內容與廣播間隔,防偽
機制,以及多元化的電力與機構選項。它是全世界第一個多用途的Beacon 平台。它希望提供跨作
業系統的支援,並且在單一框架中提供多元化的應用,成為虛擬與實體世界之間的關鍵連結。
Android Studio 之 iBeacon 藍芽應用開發學習
- 21. 目前市場上,有兩大類產品,都是以 Bluetooth Smart 技術為基礎,所以經常被搞混。
(Bluetooth Smart 先前更廣為人知的名稱是 BLE,是 Bluetooth Low Energy 的縮寫)。第一大
類是所謂的 KeyFinder 或 Keytag,中國大陸習慣叫藍牙防丟器,像 Tile 以及 Stick&Find、
Trackr Bravo、BeLuvv (Guardian & Puppy)、Nut⋯⋯都是這類,市場上起碼有 20 個品牌。第二
大類才是所謂的 Beacon,包括 Apple 的 iBeacon,Qualcomm 的 Gimball,與 mBeacon 都是。
第一類的產品並不算是 Beacon,而是一種基於 FindMe 這個標準 Bluetooth Profile 的產品。透
過實施 FindMe 這個標準的藍牙服務,可以讓裝置與主人的手機的App 端之間建立經常性連線,即
使 App 在背景運作,這個連線依然存在。因為連線是經常性存在,因此手機可以發送訊號隨時找尋
裝置,裝置也可以隨時發送訊號尋找手機。如果訊號過低即將斷線,手機端的 App 還會收到通知,
所以 App 可以即時發出聲響或訊息通知主人,或者自動記錄斷線的座標。然而,也因為是經常性連
線,所以只要裝置在主人手機的連線範圍內時(通常是 30 到 50 公尺),裝置是不會進入廣播的模
式,當然也就不會被範圍內被其他人的藍牙手機發現。只有當主人的手機不在連線範圍內時,裝置
才會進入廣播的模式,但是廣播的內容通常只是裝置的名稱,而不是一種編碼。最後,如果主人的
手機斷線一段時間,例如 48 小時,裝置就會自動關閉。根據上述的特點,簡單的說,這類產品基
本上是設計來服務「裝置的主人」,而不是來服務「非特定的其他人」。
Android Studio 之 iBeacon 藍芽應用開發學習
- 22. 第二大類,則是 Beacon 類的產品,包括 mBeacon 以及 Apple iBeacon 在內都是。在設計理念
上,Beacon 和前述剛好相反,是設計來服務它人而不是主人。Beacon 除了在少數的情況下,多
數的時候是不會和主人的手機之間建立經常性的連線。相反地,它們會持續以某種時間間隔來廣播
某種編碼,以及某些可參數化的屬性。
到目前為止,mBeacon 寵物吊牌與鑰匙圈,是全世界唯一建立在 Beacon 概念上的「協尋器」產
品。這樣做,當然會使 mBeacon 寵物吊牌或鑰匙圈不具備前述 Key Finder 類產品的雙向呼叫與
即時斷線警告功能,而只能提供從手機 App 呼叫裝置的功能。但也因此獲得更遠的協尋距離,以及
更靈敏的協尋反應。同時,也賦與寵物吊牌與鑰匙圈更多元化的功能。
當手機App 結合 mBeacon 以及雲端服務之後,各種虛實整合的創新應用將成為移動互連網的下一
波主流應用:
尋找走失的小朋友,老人,或者寵物
近場遊戲與近場交友
商場導覽與近場行動廣告
智慧型會員卡與行動支付
門禁與身分安全識別
大型場所的進出與人群流量管理
車輛(汽車、機車、自行車)管理與識別
社會安全與照護
登山迷途救援
Android Studio 之 iBeacon 藍芽應用開發學習
- 24. Android Studio 之 iBeacon 藍芽應用開發學習
藍芽設置
1. 新建專案
2. 編輯 Layout 檔(activity_main.xml)
3. 編輯程式檔(MainActivity.java)
4. 編輯權限檔(AndroidManifest.xml)
5. Run
- 29. Android Studio 之 iBeacon 藍芽應用開發學習
iBeacon (AltBeacon SDK)
1. 新建專案
2. 編輯 build.gradle(App),加入 AltBeacon SDK
3. 編輯程式檔(MainActivity.java)
4. 編輯權限檔(AndroidManifest.xml)
5. Run
- 34. Android Studio 之 iBeacon 藍芽應用開發學習
iBeacon (Estimote SDK)
1. 新建專案
2. 編輯 build.gradle(App),加入 Estimote SDK
3. 編輯程式檔(MainActivity.java)
4. 編輯權限檔(AndroidManifest.xml)
5. Run
- 39. Android Studio 之 iBeacon 藍芽應用開發學習
結論
後續
可以開發 (1) 商/展場應用,園區管理
(2) 短距離 / 室內定位
(3) 未來 BLE 5.0 長距離物聯網控制