1. 程式人生 > >[藍芽]蘋果裝置藍芽接入設計指南

[藍芽]蘋果裝置藍芽接入設計指南

本文介紹了針對硬體通過藍芽傳輸來與蘋果產品包括Mac,iPhone和iPod touch等互動的設計指南。為了能夠與蘋果產品相容,現在和未來的設計當中,藍芽計入都應該遵循本文中的規範。本文主要分為兩個部分:通用需求描述了使用藍芽接入的硬體裝置設計應該遵循的通用藍芽標準;蘋果協議和開發者支援描述了蘋果用來擴充套件標準藍芽檔案從而提升接入能力的協議。

通用需求

遵循藍芽協議

任何能夠與蘋果產品相容的藍芽接入都必須支援Bluetooth Core Specification Version 2.1 +EDR或者更高的版本。該說明中包含了重要的安全特性Secure Simple Pairing和Extended Inquiry Response。

加強資料率

Enhanced Data Rate (EDR)特性在藍芽2.0標準中被引入,用來提升藍芽接入的通訊效率。為了提供向後相容性,藍芽SIG將EDR設為可選特性。蘋果強烈推薦儘可能使用EDR,原因如下:它提供了與Basic Data Rate (BDR)更高的資料速率;傳輸效率更高,單位時間內傳送更多的位元組;每個位元傳輸所消耗的電量更少;使用共享天線與WiFi更好的相容,因為他能夠為WiFi釋放更多的使用事件;在多點配置的情況下能夠提升效能。

低功耗的發現模式

低功耗是移動裝置一個重要的方面,因此每個與蘋果產品相容的藍芽接入都必須:支援並且請求藍芽發現模式;能夠接收發現模式的請求,支援藍芽引數中所有有效的引數。不能夠與蘋果產品相容的藍芽接入也應該儘可能使用發現模式,尤其是當僅有少量資料或者沒有資料被通過藍芽連線傳輸的時候。除了低功耗的特點,發現模式還能夠更好地與WiFi共享天線。

發現模式的引數是針對使用模型和藍芽配置的,蘋果產品期望藍芽接入通過請求發現模式並配以合適的引數來完成使用。如果接入不能傳送這樣的請求,蘋果產品可能會發送一個發現模式請求。當蘋果產品傳送了發現模式請求的時候,遠端裝置應該無條件接收該請求及其引數。如果他設定了發現模式引數,那麼藍芽接入應該設定發現的間隔不能超過第三方藍芽基帶連線的監控超時時間。這樣可以使得藍芽連線更加容易被介面使用。為了增強連線的健壯性,接入應該使用較短的發現間隔而不是多次的發現嘗試。使用發現間隔為1秒或者更久的發現模式會使得被動裝置開啟一個大的連線視窗,當計算嘗試次數的時候必須將他考慮進去。如果發現間隔小於1秒,那麼多次發現嘗試可以增強連線的健壯性,但是會增加電量的消耗。

角色和拓撲管理

每個與蘋果裝置相容的藍芽接入應該:能夠接收從蘋果裝置傳送的角色互換請求;當蘋果裝置拒絕角色互換的請求的時候繼續保持連線。在藍芽連線中通常會有一個主動裝置和被動裝置。主動裝置可以有多個被動裝置,因此可以構建微微網。主動裝置還可以是其他主動裝置的被動裝置,建立一個分佈網。這種情況下增加了連線的複雜性,因為裝置必須在兩個微微網進行切換浪費了頻寬資源。因此管理藍芽連線的拓撲結構對於最優化效能非常重要。蘋果裝置可以根據現有的拓撲結構請求一個角色互換,遠端裝置需要接收該請求。蘋果裝置也可以因為拓撲結構方面的原因拒絕一個角色互換的請求。當拓撲結構不理想的時候可能會降低音訊的質量和使用者的體驗。

只有當蘋果裝置在保持多連結的情況下,如藍芽或者WiFi,才會請求或者拒絕角色互換。因此,當沒有原因使得蘋果裝置必須為主動方的時候會允許角色互換。對於接入裝置的執行方式是一樣的,只有當他有足夠的成立的原因成為主動放的時候才會允許角色互換。當在拓撲結構中沒有必要的時候,接入裝置不應該總是預設請求成為主動放,如果後面為了維持多重連線,接入方需要成為主動放的時候,可以在那個時候請求成為主動方。

擴充套件的詢問響應

所有與蘋果相容的藍芽接入都應該在他的擴充套件的詢問響應包中提供如下內容:裝置的本地名稱,完整的或者縮寫;TX電量等級;iAP協議的Service Class UUID,如果裝置擁有這個服務的話。在藍芽發現過程中,蘋果裝置可以顯示發現的藍芽接入的名稱。在2.1之前的標準中,蘋果裝置必須建立接入的連線然後傳送Remote Name Rquest請求,這將會耗費電量、天線時間和使用者時間。在藍芽2.1標註中印尼如的擴充套件的請求響應特性,使得接入傳送自己的本地名稱和其他資訊作為請求響應的一部分,因此可以增加發現過程的速度和效率。

安全簡單配對

每個與蘋果相容的藍芽接入都應該:使用安全簡單配對;如果有顯示和輸入裝置支援的話,使用數字比較方法。安全簡單配對大大地增強了安全性,他是在2.1標準中引入的強制性安全特性。為了防止中間第三方的侵入,應該儘可能地使用數字比較方法。

描述

蘋果的官方文件support.apple.com/kb/ht3647中提供了蘋果產品支援的藍芽描述的完整列表。藍芽標準是開始設計與這些裝置相容的藍芽接入的起始點。下面的部分添加了一個資訊和要求到一些描述當中,可以幫助開發者實現最終的結果。

裝置ID描述DID

每個與蘋果裝置相容的藍芽接入都必須:支援藍芽裝置ID描述,1.3版本或者更高;使用藍芽SIG分配的Assigned Numbers文件中的公司標識作為他的Vendor ID值,也就是VID,如果生產商沒有藍芽SIG公司標識,那麼藍芽HID描述接入可能會使用USB Implementers Forum分配的VID;使用他的VID值來標識最終的產品生產商;使用版本值來唯一標識軟體的版本;使用ProductID值唯一標識產品。Device ID描述使得蘋果產品能夠識別遠端的藍芽接入,該資訊可以用來在與遠端接入互動的時候連線藍芽描述間的交替互操作。因此Device ID中的資訊記錄非常重要。

在車載裝置的例子中,相同的車載裝置可能會有兩個不同的模型。理想情況下,這兩個車載裝置應該有不同的產品ID。但是,當他們擁有完全相同的硬體、軟體和特性的時候擁有相同的ProductID也是可以允許的。如果他們有任何的不同,就都應該有不同的Product ID。

擴音描述HFP

如果藍芽接入支援藍芽擴音描述標準,那麼應該是1.5或者更高的版本。遠端接入可以使用藍芽擴音描述來支援電話的互動。為了提供最好的使用者體驗,遠端接入通常支援如下特性,這些特性在藍芽標準中是可選的。

遠端音訊音量控制:每個與蘋果裝置相容的藍芽接入且支援HFP的都應該:支援遠端音訊音量控制因此擴音接入的音量可以通過蘋果裝置進行控制,如HFP標準1.5中的描述;通過AT+BRSF=命令在Supported Features點陣圖中來設定遠端音量控制位。在某些情況下可以方便使用者通過蘋果裝置而不是遠端接入來控制輸出音量。音量控制同步在藍芽HFP標準1.5版本中有描述。

事件報告指示器:所有與蘋果裝置相容且支援HFP的藍芽接入應該使用事件報告指示器而不比重複執行輪詢。蘋果裝置支援HFP1.5版本中所有強制和可選額指示器,為了最小化不必要的的AT+CIND?命令進行狀態輪詢,遠端接入應該支援事件報告指示器,來發送AT+CMER命令。然後蘋果裝置會在發現一個狀態指示器變化的時候傳送一個+CIEV事件。根據HFP標準,遠端接入應該使用AT+CIND=?和AT+CIND?命令請求初始化狀態。

聲音識別啟用:每個與蘋果相容且支援HFP的藍芽接入都應該:支援聲音識別啟用;通過AT+BRSF=命令在SupportedFeature點陣圖中設定聲音識別啟用位。蘋果裝置支援通過擴音接入和iOS接入初始化的聲音識別啟用。

迴音取消和噪聲削弱:當在擴音藍芽接入的時候設定迴音取消和噪聲削弱的時候,應該通過傳送AT+NREC命令來關閉蘋果裝置上的迴音取消和噪聲削弱,在Hands-Free描述標準1.5中有詳細介紹。蘋果產品支援迴音取消和噪聲消除,這些特性是預設啟用的。如果擴音接入也需要進行迴音消除和噪聲削弱的話,就應該關閉蘋果裝置上的這兩個功能。這樣可以避免因為雙重音訊處理而產生的不必要的音訊質量損毀

同頻帶鈴聲:每個與蘋果相容且支援HFP的藍芽接入都應該支援同頻帶鈴聲,在藍芽Hands-Free描述標準1.5中有進行描述。如果使用者在蘋果裝置商設定了鈴聲,那麼在擴音接入裝置中應該具有相同的鈴聲。

同步連線:每個與蘋果相容且支援HFP的藍芽接入都應該:支援eSCO引數,設定S2和S3且節誒受請求中的這些引數;當設定同步連線的時候請求額SCO引數設定S2或者S3,注意eSCO引數設定S1不應該被請求;在SCO/eSCO連線建立後的40ms內調整音訊。eSCO包型別提供了包的重新傳送,傳統的SCO包不可以被重新傳送。這樣就增強了音訊的質量和使用者體驗。eSCO包型別2-EV3和3-EV3提供了包之間的更多事件,可以增加WiFi效能,允許其他的藍芽同時接入。

寬頻講話:每個與蘋果相容且支援HFP的藍芽接入都應該支援寬頻降火連線,在藍芽Hands-Free Profile標準1.6中有描述。如果支援寬頻講話,那麼就應該支援T2連線引數設定。所有執行iOS5或者更高版本的iOS裝置都支援寬頻講話。

簡訊獲取描述MAP

每個與蘋果相容且支援iMAP的藍芽接入應該滿足:滿足訊息通知,在藍芽Message Access Profile標準1.0版本中有描述;當連線建立的時候立即註冊通知,在在藍芽Message Access Profile標準1.0版本中有描述;不在建立者VCARD中顯示TEL屬性,在藍芽Message Access Profile標準1.0版本中有描述;不提供用來發送資訊的使用者介面,iOS裝置不支援使用MAP傳送訊息。所有執行iOS6或者更高版本的iOS裝置都支援MAP。

視訊音訊遠端控制描述AVRCP

為了支援音訊/視訊遠端控制描述,與蘋果相容的藍芽接入需要支援如下的按鈕和操作:

支援的按鈕:所有與蘋果相容且支援AVRCP的藍芽接入都應該使用不同的按鈕命令來播放或者暫停,而不是切換播放或者暫停狀態

支援的操作:蘋果產品通過Pass Through命令支援如下operation_IDs:Play;Stop;Pause;Fast Forward;Rewind;Forward;Backward;

重複和隨機模式:所有iOS裝置在AVRCP目標的角色下都支援重複和隨機模式。一個AVRCP控制器可能會使用SetPlayerApplicationSettingValue來設定iOS裝置的值,然後使用GetPlayerApplicationSettingValue讀取該值,在藍芽AVRCP標準1.4版本中有描述

通知:所有與蘋果裝置相容且支援AVRCP描述的藍芽接入都應該註冊通知且不需要重複執行輪詢來獲取蘋果產品的狀態。所有iOS裝置在AVRCP目標角色下都支援通知的註冊,在AVRCP標準1.4版本中有描述。命令RegisterNotification和GetPlayStatus支援一下通知:EVENT_PLAYBACK_STATUS_CHANGED;EVENT_TRACK_CHANGED;EVENT_NOW_PLAYING_CONTENT_CHANGED;EVENT_AVAILABLE_PLAYERS_CHANGED; 
EVENT_ADDRESSED_PLAYER_CHANGED;EVENT_VOLUME_CHANGED

音量控制:所有與蘋果裝置相容且支援AVRCP描述的藍芽接入都應該支援Absolute Volume,在藍芽AVRCP標準1.4中有描述。每個iOS裝置在AVRCP控制器角色下都支援音量控制

瀏覽:所有與蘋果裝置相容且支援AVRCP描述中瀏覽(在控制器角色下)的藍芽接入應該:不要索引或者快取基於連線的整個庫,iOS裝置可能會包含大量的多媒體條目,每個都會在層次中呈現多次;當瀏覽某個資料夾的時候,不要獲取所有的條目,僅僅獲取顯示給使用者的條目,可以提前獲取一些條目來提高對使用者介面的響應速度;不要重排條目;不要假設UID是靜態定義的,尤其是在根目錄下,資料夾的順序和UID以及裡面的多媒體條目可能在將來的版本中發生變化;在接收到EVENT_UIDS_CHANGED通知後傳送SetBrowsedPlayer命令;不要假設傳遞給PlayItem命令哪個UID,多媒體播放器就會播放那個UID。現階段只有內建的Music應用支援瀏覽,當在播放器之間切換的時候,EVENT_AVAILABLE_PLAYERS_CHANGED和EVENT_ADDRESSED_PLAYER_CHANGED通知會被生成。UI就會需要檢視被列出來的播放器的特性位元位來決定是否可以使用它進行瀏覽。所有執行iOS6或者更高版本的iOS裝置都支援AVRCP瀏覽。

iOS應用元資料:執行在iOS裝置上的音訊軟體可能會使用iOS MediaPlayer Framework API來提供當前音訊流的元資料。iOS裝置使用AVRCP向接入點提供這些元資料。

高階音訊分佈描述A2DP

所有與蘋果裝置相容且支援Advanced Audio Distribution Profile A2DP的藍芽接入都應該滿足A2DP1.2標準中描述的需求。

子帶編解碼器SubBand Codec (SBC):砸啊唉A2DP描述中定義的SBC編解碼器標準資訊元素可以被應用於蘋果產品,他們如下:

Sampling Frequency(44,100 Hz);Channel Mode(Stereo);Block Length(16);Subbands(8);Allocation Method(Loudness);Bitpool range(2 to 53. Bluetooth accessories for Apple products should support 53)

MPEG 2/4 AAC 編解碼器:iOS裝置支援非強制性的MPEG-2/4 AAC編解碼器,在A2DP 1.2版本的描述中有定義。接入點應該使用AAC編解碼器附加到SBC中,因為在位元速率固定的情況下他提供了更高的音訊質量。下面給出了蘋果實現的MPEG-2/4 AAC編解碼器的實現,當有衝突的時候,以A2DP描述為準。MPEG 2/4 AAC編解碼器的標準資訊元素在A2DP描述中有定義,可以應用在iOS裝置中的元素如下:Object Type(MPEG-2 AAC LC);Sampling Frequency(44,100 Hz);Channels(2);Bit rate(264,630 bps);VBR(0)。 
iOS裝置中的AAC音訊流包的結構如下:L2CAP Header;AVDTP Header;MPEG-4 LATM AudioMuxElement;MPEG-4 AAC Audio Payload。AAC Media Paylod Format,在A2DP中被描述,使用LATM進行格式化,LATM在IETF RFC 3016中定義的。下面的關鍵點適用於上面提到的音訊流包中的結構域:每個iOS裝置的AAC流通道的A2CAP MTU值建議是885位元組;AVDTP Header作為RFC 3016的RTP頭,也是在Audio/Video Distribution Transport Protocol中定義的頭;AudioMuxElement與RFC 3016中的RTP payload相同,muxConfigPresent是AudioMuxElement的引數,設定為1(in-band模式下),在RFC 3016中,推薦每個AVDTP包中只有一個AudioMuxElement;音訊負載使用MPEG-4編碼。

音訊路由

  這部分描述接入點如何區分來自iOS裝置的不同的音訊內容,以及如何使用這些資訊來決定播放行為。接入點可以根據兩種不同的藍芽描述接收來自iOS裝置的音訊資料:使用eSCO通道的HFP和ACL通道的A2DP。iOS根據如何使用音訊內容來選擇通道。用來雙向通訊的音訊路徑通常使用HFP來建立來發送音訊資料。音樂和類似的內容使用A2DP路由。如果沒有定義的路由,音訊播放將會預設為iOS裝置。

HDF音訊資料接收

大部分通過HFP路由傳送的音訊內容都是需要雙向通訊的。使用HFP的情況包括蜂窩通話,FaceTime以及語音郵件等。對於任何通過HFP路由接收的音訊內容,都需要接入點的聽筒和話筒專心與藍芽連線,不能在處理其他的音訊內容。

A2DP音訊資料接收

通過A2DP描述傳輸的音訊內容可以大致分為兩類:音樂、視訊或者遊戲等應用中的音訊內容;系統生成的音訊,如警告和通知等。

區別系統聲音的音訊內容:類似音樂的內容可以通過新增AVRCP 1.3或更新版本的描述的支援來與系統聲音進行區別。AVRCP描述允許接入點通過通知識別iOS裝置的音訊播放狀態。當iOS裝置開始通過A2DP通道對播放的音訊內容播放的時候,一個AVRCP通知EVENT_PLAYBACK_STATUS_CHANGED被髮送來標識播放狀態的改變。這表示通過A2DP描述的音訊內容為音樂。當iOS裝置通過A2DP通道播放系統聲音的時候,一個i額AVRCP通知會被髮送。

A2DP音訊路由行為:在使用A2DP通道的時候,接入點應該根據音訊的內容來調整音訊路由行為。如果音訊資料包含音樂,那麼接入點的聽筒需要專心處理通過藍芽接入傳入的音訊資料,其他任何的音訊播放都需要停止。如果音訊內容為系統聲音,那麼接入點可以在需要的時候放棄音訊。如果接入點正在播放不同源輸入的音訊,那麼系統聲音資料可以與現在播放的音軌混合,並不需要強制停止已經正在裝置商播放的音訊。

藍芽低功耗

藍芽4.0標準引入了藍芽低功耗,一種針對有限電池資源的藍芽接入的無線技術。如果支援藍芽低功耗的話,接入點需要支援下面的這些特性。

角色

藍芽接入需要實現藍芽4.0標準中定義的外圍角色

廣告通道

藍芽接入需要在所有三個廣告通道中針對每個廣告事件進行廣告

廣告PDU

藍芽接入需要使用如下廣告PDU中的一個:ADV_IND;ADV_NOCONN_IND;ADV_SCAN_IND。其中ADV_DIRECT_IND不推薦使用。

廣告資料

由藍芽接入傳送的廣告資訊應該至少包含藍芽4.0標準中包含的如下資訊:Flags;TX Power Level;Local Name;Services。如果需要降低電量消耗或者並不是所有的廣告資料都適合放入到廣告PDU中的時候,接入點可能將Local Name和TX Power Level資料方知道SCAN_RSP PDU中。需要注意的是根據它的狀態,蘋果產品可能不會總是執行啟用掃描。主要的服務應該總是放在廣告PDU中進行廣告。次要的服務不應該進行廣告。對於接入點不重要的服務資訊可能會因為廣告PDU中的空間不足而被忽略。廣告資料和SCAN_RSP PDU中的掃描響應資料應該遵循藍芽4.0標準中的格式。

廣告間隔

  藍芽接入的廣告間隔應該慎重考慮,因為他會影響到發現和連線的效能。對於低功耗的接入,電池資源也應該被考慮在內。為了能夠被蘋果產品發現,藍芽接入應該首先使用推薦的廣告間隔20ms,並持續至少30秒。如果在這30秒內沒有被發現,那麼接入點可能會選擇節省電池電量然後增加廣告間隔,蘋果推薦使用如下依次延長的事件間隔來發現藍芽接入點:645 ms;768 ms;961 ms;1065 ms;1294 ms

連線引數

藍芽接入負責用來LE連線的連線引數。接入點需要請求合適的連線引數來在合適的時候傳送一個L2CAP連線引數跟新請求。如果他沒有符合如下規則,那麼連線引數請求可能會被拒絕:Interval Max * (Slave Latency + 1) ≤ 2 seconds;Interval Min ≥ 20 ms;Interval Min + 20 ms ≤ Interval Max;Slave Latency ≤ 4;connSupervisionTimeout ≤ 6 seconds以及Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout。蘋果裝置不會讀取或者使用Peripheral Preferred Connection Parameters特性中的引數。

隱私

藍芽接入應該在任何情況下都能夠滿足Resovable Private Address。因為私隱方面的考慮,蘋果裝置將會使用藍芽4.0標準中定義的隨機裝置地址。

授權

藍芽接入不需要請求特殊的授權,如配對、認證或加密等來發現服務和特性。只有在獲取特性值或者描述值的時候可能會需要特殊的授權。

配對

藍芽接入不應該請求配對。如果處於安全考慮,接入點需要與Central建立繫結關係,外圍可以使用Insufficient Authentication錯誤碼在必要的時候拒絕ATT請求。因此蘋果裝置可能會需要按照既定的安流程程來執行過程。配對可能會需要基於蘋果產品的使用者認證。

服務

通用接入描述服務:藍芽接入應該實現按照藍芽標準4.0中的Device Name特性

通用屬性描述服務:只有當接入有能力在生命週期內更改他的服務的時候,該接入點才需要實現Service Changed特性。蘋果產品可以使用Service Changed服務特性來決定它是否可以使用之前讀取的或者快取的來自裝置的資訊。

裝置資訊服務:藍芽接入應該實現裝置資訊服務。服務的UUID不應該包含在廣告資料當中。如下的特性需要被支援:Manufacturer Name String;Model Number String;Firmware Revision String;Software Revision String

GATT伺服器

  在iOS6中,應用可能會將對於藍芽接入可用的服務和特性共享到GATT伺服器,下面的部分應用於這種情況。iOS裝置實現了GAP Service Changed特性,因為資料庫內容可能隨時會改變。因此藍芽接入需要支援Characteristic Value Indication來接收該通知,從而驗證資料庫的快取。藍芽接入應該最小化使用ATT/GATT請求和命令,而且僅傳送必要的資料。例如,當搜尋特定的服務的時候不要使用GATT Discover All Services,而是使用Discover Primary Service By Service UUID。更少的時間意味著更低的電量消耗和更好的效能。藍芽接入應該足夠健壯能夠處理任何型別的錯誤。配對和讀寫特性值可能會因為擁有該服務的應用不在前臺執行且沒有在後臺授權執行而發生錯誤。如果使用了ATT Prepare Write Request,所有屬性佇列將會包含在同一個GATT Service中。

蘋果協議和開發者支援

本章描述了可以幫助你開發蘋果相容的藍芽接入裝置的設計的資源,以及除了標準的藍芽描述之外的擴充套件功能的描述;

蘋果藍芽開發郵件列表

關於蘋果產品的藍芽接入的問題和評論可以傳送到蘋果的藍芽開發郵件列表,[email protected],為了成為該郵件列表的一員,訪問lists.apple.com/mailman/listinfo/bluetooth-dev。蘋果藍芽開發團隊的工程師會檢視該郵件列表並且回答你提出的問題。

iPod接入協議

第三方的接入可以使用iPod接入協議iAP來獲取iOS裝置的高階功能。其中的一個特性就是與第三方iOS應用通過iOS External Accessory Framework安全通訊。為了將iPA考慮進藍芽接入的設計中,開發者必須是Apple MFi認證專案的一員,同時將特定的MFi硬體設計考慮在內。

耳機電池層級指標

任何擴音的藍芽耳機都可以在iOS裝置的狀態列中顯示一個用來標識他電池電量的圖示。這個特性被所有的iOS裝置所支援,包括iPhone、iPod和iPad。耳機的藍芽知識通過兩個iOS藍芽HFP AT命令:HFP Command AT+XAPL

HFP命令AT+XAPL

  • 描述:允許通過耳機自定義AT命令
  • 發起者:耳機
  • 格式:AT+XAPL=[vendorID]-[productID]-[version],[features]
  • 引數:
    • vendorID: 標識生產商的vendor ID的十六進位制表示,但是沒有0x字首
    • productID: 標識生產生的product ID的十六進位制表示,但是沒有0x字首
    • version: 軟體的版本
    • features: 用10進位制標識的位標識:
      • 1 = 耳機支援電池電量報告
      • 2 = 耳機暫停或者正在充電
      • 其他值保留
  • 例子: AT+XAPL=ABCD-1234-0100,3
  • 響應: +XAPL=iPhone,[features]

HFP命令AT+IPHONEACCEV

  • 描述:報告耳機的狀態變更
  • 發起者:耳機
  • 格式:AT+IPHONEACCEV=[Number of key/value pairs ],[key1 ],[val1 ],[key2 ],[val2 ],...
  • 引數:
    • Number of key/value pairs : 接下來引數的數量
    • key: 被報告狀態變化的型別
      • 1 = 電量等級
      • 2 = 暫停狀態
    • val: 更改的值
      • Battery events:0-9之間數字的字串 A string value between '0' and '9'.
      • Dock state: 0 = undocked, 1 = docked.
  • Example: AT+IPHONEACCEV=1,1,3

相關推薦

[]蘋果裝置芽接設計指南

本文介紹了針對硬體通過藍芽傳輸來與蘋果產品包括Mac,iPhone和iPod touch等互動的設計指南。為了能夠與蘋果產品相容,現在和未來的設計當中,藍芽計入都應該遵循本文中的規範。本文主要分為兩個部分:通用需求描述了使用藍芽接入的硬體裝置設計應該遵循的通用藍芽標準;蘋

蘋果裝置芽接設計指南

本文介紹了針對硬體通過藍芽傳輸來與蘋果產品包括Mac,iPhone和iPod touch等互動的設計指南。為了能夠與蘋果產品相容,現在和未來的設計當中,藍芽計入都應該遵循本文中的規範。本文主要分為兩個部分:通用需求描述了使用藍芽接入的硬體裝置設計應該遵循的通用藍芽標準;蘋

DIY手工-2D印表機(傳輸-APP控制)-畢業設計------(一)

        本人是名自動化專業學生,漸漸也到了畢業季,到了畢業季,除了花銷特別大好像也沒什麼了吧,哈哈,但是突然想起還有畢業設計,想起這幾年好像沒做過什麼成品的東西,尷尬,別人總是會問你做了什麼 ,我...... ,我還真反駁不了耶,好吧  我承認!        回顧

Android搜尋裝置,向其傳送資料並接收

通過藍芽傳輸資料與Socket類似。在網路中使用Socket和ServerSocket控制客戶端和服務端的資料讀寫。而藍芽通訊也由客戶端和服務端Socket來完成。藍芽客戶端Socket是BluetoothSocket,藍芽服務端Socket是BluetoothServerSocket。這兩個類都在包

微信硬體裝置接入(2)

onReceiveDataFromWXDevice 接收不到資料原因 有關藍芽裝置響應的資料到底是返回前端頁面還是後端伺服器檢驗方法 最近剛接觸微信藍芽裝置接入,遇到一個問題就是,可以獲取裝置資訊,也可以傳送訊息給裝置,但是接收裝置響應回來的資料卻接收不了,在網上看了好多資訊,說,裝

微信硬體裝置接入(1)

微信jsapi是網頁javascript的介面,該介面允許廠商的網頁對區域網裝置(裝置必須支援AirKiss3.0)和藍芽裝置進行操作。例如掃描裝置,連線裝置,收發資料,繫結裝置等。 大概流程圖如下(以藍芽裝置為例,途徑是紅色箭頭那個) 1、使用者場景 1、使用者開啟微信a

膝上型電腦連線耳機裝置

1,  新增裝置 選擇找到的藍芽裝置,譬如SBH70 2,  選擇服務 勾選耳機服務,應用,確定   3,  安裝驅動 A, Bluetooth外圍裝置驅動 B, Bluetooth AV

Android實現裝置間資料傳輸

這篇文章總結通過藍芽實現兩臺pad間資料傳輸 文章基於傳統藍芽,而不是BLE。 藍芽應該是移動裝置經常用到的功能模組,Android Bluetooth API 是Android提供的用來實現點到點和多點無線功能。 使用 Bluetooth API

如何自動連線上次連線的裝置(Android開發)

上一個部落格寫了如何進行Android藍芽串列埠的實現,本次的部落格主要討論一下在開啟app時自動連線上一次連線的藍芽裝置,藍芽裝置必須是以前已經配對過的裝置。 主要思想 本方法的思想很簡單利用Sha

Android開發(一)之開啟裝置搜尋

Android藍芽開發系列目錄: 一、判斷是否系統是否支援藍芽 在使用藍芽之前,我們首先要判斷手機裝置是否支援藍芽,雖然現在基本都支援藍芽了,但是為了程式碼的嚴謹性我們還是需要在程式碼中判斷: private BluetoothManager bluetoothma

Qt使用WindowsAPI搜尋裝置並建立串列埠服務的方法

如何使用windows藍芽api搜尋藍芽裝置可參考我的另外一篇文章Windows列舉搜尋遠端藍芽裝置。使用如下程式碼可以藉助windows自動安裝串列埠驅動(如果遠端藍芽裝置支援串列埠服務的話)。BluetoothSetServiceState ( hbr, &bt

ionic專案中JavaScript與ble(低功耗裝置傳輸資料

需要實現的目標:app向ble傳輸一個時間。根據協議,所傳輸的時間格式為(全部為hex,中間無空格):c0 00 10 01 07 15 15 15 08前兩位為協議頭(byte0,、byte1),接下來分別是為(byte2~byte8):年 月 日 時 分 秒 時區————

安卓BLE裝置開發

 前段時間做了一個有關於安卓藍芽BLE裝置的開發專案,主要的功能包括了搜尋藍芽ble裝置和ble裝置的資料讀寫等等,本篇部落格用於記錄安卓藍芽ble裝置的通訊的細節。  其實關於BLE裝置的通訊在API中已經講地比較清楚了,這裡只是做一個總結,如果要進行BLE

Android開發——裝置連線(四)

前言 經過一個多月的時間藍芽多裝置連線的重構終於告一段落了,這次的重構不止是程式碼方面的完善,還結合了一些使用者的使用場景,另外增加一些離線操作,使手機端對藍芽的操作更加的便捷,對藍芽裝置的管理更加統一。 場景分析 支援的場景 多裝置連線(一個

超低偽,秒殺晶片和模組

低成本藍芽替代方案1.產品應用範圍本方案適用於將各種資料上傳到手機端,發射遠距離60米,2.產品特點優勢總結適用於低成本秒殺時面上所有藍芽晶片、藍芽模組,上傳資料量不大或通訊距離遠的產品,並且需要和手機通訊的。提供完整的硬體模組+嵌入式軟體+APP(或API介面)+後臺方案 聯絡人:溫經理諮詢熱線:1821

有關耳機和音訊的那點事兒

耳機 耳機這部分,目前市面上來講,一般是根據有線和無線來區分,有線耳機一般按照介面可分為3.5mm介面和6.5mm介面;按照佩戴方式一般分為頭戴式、入耳式等。 不同價位的耳機,區別主要在兩部分: 其一:單元部分,這部分決定了耳機的解析能力、聲場、動態等,這部分

關於歷史以及基本介紹

什麼是藍芽4.0, 藍芽其他標準又是什麼 低功耗藍芽(Low Energy; LE),又視為Bluetooth Smart或藍芽核心規格4.0版本。其特點具備節能、便於採用,是藍芽技術專為物聯網(Internet of Things; IOT)開發的技術版本。 所以它最主要

BQB認證,BQB認證,認證,測試,實驗室,深圳BQB認證,BQB認證費用,BQB認證實驗室,BQB認證機構,BQB認證公司

1、什麼是藍芽BQB認證?   藍芽認證也就是BQB認證,簡言之就是如果您的產品具有藍芽功能並且在產品外觀上要標明藍芽標誌,必須通過一個叫做BQB的認證。所有Bluetooth SIG成員公司完成認證之後均可使用藍芽字標和徽標。藍芽字標和徽標僅可用於通過藍芽資格認證

BLE---DA14683資料收發詳解

DA14683自定義資料收發詳解 Date: 2018.11.26 Create: Jim Wechat: life5270 在使用14683的SDK過程中,SDK裡面並未提供簡單的資料收發Demo,或者說例程中其實也有資料收發的Demo(如CTS服務),但是封裝了很多東西,新手

BLE---DA14683配置

DA14683的藍芽相關配置 Date: 2018.11.17 Create: Jim 匯入工程 首先,我們通過開發環境的左上角 File->Import匯入Demo例程。如下: 修改廣播資訊 開啟pxp_reporter_task.c