Android 手機可以通過 BLE 被掃描到嗎?

目前在做Android的BLE的開發,僅局限於工程,有兩部已升到Android 4.3的galaxy s3。

我通過一部手機進行BLE掃描時,發現掃描不到另一部手機,請問如何可以讓手機作為一個BLE的設備被掃描到呢?注意不是普通藍牙設備而是BLE設備。

我在Android SDK中沒有找到相應的api,請有經驗的人士解答,謝謝!


5.0以後可以了。之前不可以的。只能當主機。

Android在4.2的時候可以使用一些第三方的SDK嘗試著使用Ble當主機。

Android在4.3以後官方可以當主機的角色,也就是樓上說的central,不能作為peripheral。

剛剛發布的5.0已經完美解決了這個問題。主從機都可以了。


這個可以。

被掃到的前提是要廣播。去安卓源碼裡面看broadcom 部分。


安卓4.3版本只支持手機作central的角色,不能作為peripheral。因此無法讓安卓藍牙手機被BLE方式掃描到。有朋友做iOS開發,據說iphone應該可以支持兩種角色。


BluetoothLeAdvertiser 我一個不做上位機的 是不是手賤了啊? 我覺得看上面的東西 然後測試下完全有結論的。道聽途說總沒自己測試來得實際。


android5.0,手機已經支持中央和周邊這兩種角色,當手機作為周邊時,能被作為中央角色的手機掃描到。


就我所知,Android官方文檔(Bluetooth Low Energy)目前還沒有提到如何支持Peripheral。

也許和 @Vincent gao 所提一樣,需要查看底層源碼來實現。

相比之下,iOS對BLE的支持要好一些。

不但支持作為Central,還可以作為Peripheral。

這樣兩部手機可以互相發現和通信。

還是耐心等待Android官方升級BLE吧……


iBeacon模塊可以的啊,安裝了beacon的商家,只要有客戶進來,就會被掃到,從而廣播信息。需要資料加我Q 2790606005


  • Bluetooth Low Energy

    Android 4.3 introduced platform support for Bluetooth Low Energy (Bluetooth LE) in the central role. In Android 5.0, an Android device can now act as a Bluetooth LE peripheral device. Apps can use this capability to make their presence known to nearby devices. For instance, you can build apps that allow a device to function as a pedometer or health monitor and communicate its data with another Bluetooth LE device.

    The new android.bluetooth.le APIs enable your apps to broadcast advertisements, scan for responses, and form connections with nearby Bluetooth LE devices. To use the new advertising and scanning features, add theBLUETOOTH_ADMIN permission in your manifest. When users update or download your app from the Play Store, they are asked to grant the following permission to your app: "Bluetooth connection information: Allows the app to control Bluetooth, including broadcasting to or getting information about nearby Bluetooth devices."

    To begin Bluetooth LE advertising so that other devices can discover your app, call startAdvertising() and pass in an implementation of the AdvertiseCallback class. The callback object receives a report of the success or failure of the advertising operation.

    Android 5.0 introduces the ScanFilter class so that your app can scan for only the specific types of devices it is interested in. To begin scanning for Bluetooth LE devices, call startScan() and pass in a list of filters. In the method call, you must also provide an implementation of ScanCallback to report when a Bluetooth LE advertisement is found.

https://developer.android.com/about/versions/android-5.0.html

放心用吧

PS://剛才測試了下, nexus 4的android5.0下, ble不支持preiphrial, 難懂.

PPS://然而測試了nexus 4的android 5.1,ble也不支持

看來大概是機器硬體的限制,sigh.


但是我在 Nexus7II (version Andorid 4.4.2)設備上, 安裝Android官網的BLE程序BluetoothLeGatt 去掃描 IPHONE5 和IPHONE4S 沒有掃描到。是怎麼回事呢?


可以的,在iBeacon的兼容設備中,安卓只要是藍牙4.0以上就支持的,在車展上有出過一個基於iBeacon開發的應用,不可能人人都用的是蘋果吧,安卓機可以用的,沒問題


推薦閱讀:

iFind 低功耗藍牙附件真的不需要電池就能工作嗎?

TAG:Android | 低功耗藍牙 | iBeacons |