2013-03-13 68 views
5

所以我有一個BT客戶端和兩個藍牙4.0安卓手機上的服務器應用程序。服務器等待通過如何在Android中啓用高速藍牙(3.0 + HS或4.0)?

BluetoothServerSocket serverSocket = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(SDP_NAME, UUID.fromString(SDP_UUID)); 

連接和客戶端通過

socket = device.createRfcommSocketToServiceRecord(UUID.fromString(SDP_UUID)); 

連接到它,然後,使用的AsyncTask,我從客戶端到服務器的無限循環發送數據。

byte[] buffer = new byte[4096]; 
outputStream.write(buffer); 

我計算的速度,只得到周圍230KByte/s,這恰好是2,1 Mbit/s的藍牙EDR優惠。如何通過藍牙HS(24 MBit/s)發送數據?

回答

2

BT 3.0 + HS是一種通過實際使用Wifi物理層來實現高速率的方案。所以它只適用於擁有支持它的正確類型的BT/Wifi組合芯片,這並不常見。擁有4.0設備並不意味着它具有3.0 + HS,這只是意味着它可以實現BT Low Energy,這是低數據速率。

+0

好吧,我認爲3.0 + HS包含在[4.0](http://en.wikipedia.org/wiki/Bluetooth#Bluetooth_v4.0)中,就像EDR包含在3.0中一樣。我沒有看到4.0 EDR或4.0 + HS標籤,我認爲。不過,我用三星Galaxy S3進行了測試,它[應該有](http://en.wikipedia.org/wiki/Comparison_of_Android_devices#Smartphones)Bluetooth Highspeed。那麼我如何使用Galaxy S3的BT 4.0 + HS? – 2013-03-14 09:23:27

+0

其實,擁有BT 4.0並不意味着你自動擁有BLE,因爲它是可選功能。大多數隨機「4.0」設備不支持BLE。正如我們的想法,他們也不支持HS。這意味着很多「4.0」和「3.0」設備都處於BT 2.1級別。實際上,在2.0的水平上,因爲相當多的設備不能正確支持安全簡單配對(並且SSP *是必需的*,因此不會讓您的設備和數據丟失)。歡迎來到精彩的技術營銷世界。 – pfalcon 2013-06-03 11:22:11

+0

「只有在您擁有支持它的正確類型的BT/Wifi組合芯片時纔有效」 - 實際上,我曾經這麼想過。但是,我想到了:爲什麼它會是這樣的?什麼標準說BT HS使用WiFi協議。 BT和WiFi無線電已經基本相同,只需將DSSS調製添加到BT芯片中,並使用WiFi標頭格式化數據包即可。 *這是它應該如何工作的,沒有其他的現實意義。 – pfalcon 2013-06-03 11:29:11

0

據我所知,Google並沒有開放API來驅動4.0芯片內置的功能。由於該功能適用​​於筆記本電腦和各種Windows操作系統,因此移動Windows操作系統可能更接近或能夠通過軟件補丁操作。我認爲Google的優先考慮是在HS之前處理低電量。

此外,我認爲無線運營商並不熱衷於免費實現高速綁定,這已經導致了軟件開發工作的失敗。