① 安卓手機搜索不到藍牙模塊HC-06,是怎麼回事
模塊需要廣播特定的藍牙廣播數據包才能被搜到。不然會被手機藍牙過濾掉
② android 藍牙BLE 該怎麼搞,我是想搞個中心和周邊 ,推送消息
Android4.3 規范了BLE的API,但是直到目前的4.4,還有些功能不完善。
在BLE協議中,有兩個角色,周邊(Periphery)和中央(Central);周邊是數據提供者,中央是數據使用/處理者;在iOS SDK裡面,可以把一個iOS設備作為一個周邊,也可以作為一個中央;但是在Android SDK裡面,直到目前最新的Android4.4.2,Android手機只能作為中央來使用和處理數據;那數據從哪兒來?從BLE設備來,現在的很多可穿戴設備都是用BLE來提供數據的。
一個中央可以同時連接多個周邊,但是一個周邊某一時刻只能連接一個中央。
大概了解了概念後,看看Android BLE SDK的四個關鍵類(class):
a)BluetoothGattServer作為周邊來提供數據;BluetoothGattServerCallback返回周邊的狀態。
b)BluetoothGatt作為中央來使用和處理數據;BluetoothGattCallback返回中央的狀態和周邊提供的數據。
因為我們討論的是Android的BLE SDK,下面所有的BluetoothGattServer代表周邊,BluetoothGatt代表中央。
一.創建一個周邊(雖然目前周邊API在Android手機上不工作,但還是看看)
a)先看看周邊用到的class,藍色橢圓
③ 開發Android時,藍牙耳機已經配對和連接上之後,無法再通過廣播Action found搜索到它,是否可以再搜索到
具體有什麼需求,連接成功了,不需要廣播去獲取了啊?直接從列表啟動使用就行。
《》獲取已配對的藍牙設備(android.bluetooth.BluetoothDevice)
首次連接某藍牙設備需要先配對,一旦配對成功,該設備的信息會被保存,以後連接時無需再配對,所以已配對的設備不一定是能連接的。
java">BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> devices = adapter.getBondedDevices();
for(int i=0; i<devices.size(); i++)
{
BluetoothDevice device = (BluetoothDevice) devices.iterator().next();
System.out.println(device.getName());
}
④ Android 藍牙連接後怎麼得到rssi值 並且連續刷新 哪個大神幫我一下
要拿到藍牙信號指示值 rssi 分為兩個步驟。
1.在oncreate方法裡面增加 注冊掃描廣播
public void onCreate(Bundle savedInstanceState) {
// 注冊開始發現廣播。
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED);
this.registerReceiver(mReceiver, filter);
}
2.新建BroadcastReceiver廣播對象,並實現裡面的onreceive方法,在onreceive得到rssi(信號強度)。
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
//當設備開始掃描時。
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
//從Intent得到blueDevice對象
BluetoothDevice device = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
//信號強度。
short rssi = intent.getExtras().getShort(
BluetoothDevice.EXTRA_RSSI);
⑤ 安卓廣播 藍牙 開發問題
你應該去論壇發求助帖!而不是來網路知道!
⑥ 為什麼同樣的硬體 安卓可以收到藍牙廣播包但是ios收不到
安卓系統優化不是很好,另外安卓手機必須購買高配置的手機才能流暢,因為隨著安裝的東西過多,後台運行的東西也越來越多,會拖慢手機速度。蘋果系統不是真正的多任務系統,且不允許第三方系統軟體安裝及運行,加上優化比較好(以界面響應為主優化),所以速度才快。
⑦ android手機藍牙可以發送Ibeacon廣播嗎
廣播裡面有分享的話就可以,沒有的話就不行了
⑧ 如何使用Android藍牙開發
Android平台支持藍牙網路協議棧,實現藍牙設備之間數據的無線傳輸。本文檔描述了怎樣利用android平台提供的藍牙API去實現藍壓設備之間的通信。藍牙具有point-to-point 和 multipoint兩種連接功能。
使用藍牙API,可以做到:
* 搜索藍牙設備
* 從本地的Bluetooth adapter中查詢已經配對的設備
* 建立RFCOMM通道
* 通過service discovery連接到其它設備
* 在設備之間傳輸數據
* 管理多個連接
基礎知識
本文檔介紹了如何使用Android的藍牙API來完成的四個必要的主要任務,使用藍牙進行設備通信,主要包含四個部分:藍牙設置、搜索設備(配對的或可見的)、連接、傳輸數據。
所有的藍牙API在android.bluetooth包中。實現這些功能主要需要下面這幾個類和介面:
BluetoothAdapter
代表本地藍牙適配器(藍牙發射器),是所有藍牙交互的入口。通過它可以搜索其它藍牙設備,查詢已經配對的設備列表,通過已知的MAC地址創建BluetoothDevice,創建BluetoothServerSocket監聽來自其它設備的通信。
BluetoothDevice
代表了一個遠端的藍牙設備, 使用它請求遠端藍牙設備連接或者獲取 遠端藍牙設備的名稱、地址、種類和綁定狀態。 (其信息是封裝在 bluetoothsocket 中) 。
BluetoothSocket
代表了一個藍牙套接字的介面(類似於 tcp 中的套接字) ,他是應用程 序通過輸入、輸出流與其他藍牙設備通信的連接點。
BluetoothServerSocket
代表打開服務連接來監聽可能到來的連接請求 (屬於 server 端) , 為了連接兩個藍牙設備必須有一個設備作為伺服器打開一個服務套接字。 當遠端設備發起連 接連接請求的時候,並且已經連接到了的時候,Blueboothserversocket 類將會返回一個 bluetoothsocket。
BluetoothClass
描述了一個設備的特性(profile)或該設備上的藍牙大致可以提供哪些服務(service),但不可信。比如,設備是一個電話、計算機或手持設備;設備可以提供audio/telephony服務等。可以用它來進行一些UI上的提示。
BluetoothProfile
BluetoothHeadset
提供手機使用藍牙耳機的支持。這既包括藍牙耳機和免提(V1.5)模式。
BluetoothA2dp
定義高品質的音頻,可以從一個設備傳輸到另一個藍牙連接。 「A2DP的」代表高級音頻分配模式。
BluetoothHealth
代表了醫療設備配置代理控制的藍牙服務
BluetoothHealthCallback
一個抽象類,使用實現BluetoothHealth回調。你必須擴展這個類並實現回調方法接收更新應用程序的注冊狀態和藍牙通道狀態的變化。
代表一個應用程序的配置,藍牙醫療第三方應用注冊與遠程藍牙醫療設備交流。
BluetoothProfile.ServiceListener
當他們已經連接到或從服務斷開時通知BluetoothProfile IPX的客戶時一個介面(即運行一個特定的配置文件,內部服務)。
藍牙許可權
為了在你的應用中使用藍牙功能,至少要在AndroidManifest.xml中聲明兩個許可權:BLUETOOTH(任何藍牙相關API都要使用這個許可權) 和 BLUETOOTH_ADMIN(設備搜索、藍牙設置等)。
為了執行藍牙通信,例如連接請求,接收連接和傳送數據都必須有BLUETOOTH許可權。
必須要求BLUETOOTH_ADMIN的許可權來啟動設備發現或操縱藍牙設置。大多數應用程序都需要這個許可權能力,發現當地的藍牙設備。此許可權授予其他的能力不應該使用,除非應用程序是一個「電源管理」,將根據用戶要求修改的藍牙設置
注釋:要請求BLUETOOTH_ADMIN的話,必須要先有BLUETOOTH。
在你的應用manifest 文件中聲明藍牙許可權。例如:
<manifest ... >
<uses-permission android:name="android.permission.BLUETOOTH" />
...
</manifest>
通過查看<uses-permission>資料來聲明應用許可權獲取更多的信息。
藍牙設置
在你的應用通過藍牙進行通信之前,你需要確認設備是否支持藍牙,如果支持,確信它被打開。
如果不支持,則不能使用藍牙功能。如果支持藍牙,但不能夠使用,你剛要在你的應用中請求使用藍牙。這個要兩步完成,使用BluetoothAdapter。
⑨ android藍牙開發,注冊一個廣播接收者報空指針異常的錯誤。
你的context 這個是空對象,你看下你注冊廣播場景的上下文環境。使用對應的對象進行廣播的注冊。
⑩ android 作為ble外圍設備怎樣在建立連接後停止藍牙廣播
mBluetoothLeAdvertiser.stopAdvertising()就可以了