關於Android連線藍芽的方法
尊重原創,轉載請註明出處 我是原文
今天在看自己的專案時,看到了關於藍芽連線的這部分,在此做個筆記。在之前,藍芽連線的方法為:
BluetoothDevice.createBond();
不過我記得那時所用的 API 版本這個方法是隱藏的 @hide
,具體是哪個版本的 API 我也不記得了,
然後今天無意間看了下原始碼,發現:
/**
* Start the bonding (pairing) process with the remote device.
* <p>This is an asynchronous call, it will return immediately. Register
* for {@link #ACTION_BOND_STATE_CHANGED} intents to be notified when
* the bonding process completes, and its result.
* <p>Android system services will handle the necessary user interactions
* to confirm and complete the bonding process.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return false on immediate error, true if bonding will begin
*/
public boolean createBond() {
if (sService == null) {
Log.e(TAG, "BT not enabled. Cannot create bond to Remote Device");
return false;
}
try {
return sService.createBond(this);
} catch (RemoteException e) {Log.e(TAG, "", e);}
return false;
}
是的,這個方法是公開的了。
當我直接將程式碼改為直接使用後
deviceItem.createBond();
發現了這樣的提示
意思是說這個方法是在API版本為19後(Android 4.4)才開始可以使用的。
所以建議在Android版本為4.4以下的手機上,這麼使用:
try {
Method bondDevice = BluetoothDevice.class
.getMethod("createBond" );
bondDevice.invoke(deviceItem);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
整理過後,可以變為:
if(android.os.Build.VERSION.SDK_INT<19){
try {
Method bondDevice = BluetoothDevice.class
.getMethod("createBond");
bondDevice.invoke(deviceItem);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
} else {
deviceItem.createBond();
}
注:deviceItem 為 BluetoothDevice 物件。
相關推薦
關於Android連線藍芽的方法
尊重原創,轉載請註明出處 我是原文 今天在看自己的專案時,看到了關於藍芽連線的這部分,在此做個筆記。在之前,藍芽連線的方法為: BluetoothDevice.createBond(); 不過我記得那時所用的 API 版本這個方法是隱藏的 @hide ,具
關於 Android 連線藍芽的方法
尊重原創,轉載請註明出處 我是原文 今天在看自己的專案時,看到了關於藍芽連線的這部分,在此做個筆記。在之前,藍芽連線的方法為: BluetoothDevice.createBond(); 不過我記得那時所用的 API 版本這個方法是隱藏的 `@hide` ,具體是哪個
android 連線藍芽模組教程附原始碼
由於最近專案需要連線藍芽,類似於智慧手環連線藍芽模組,網上找了些教程,有一些零零散散的程式,自己於是也寫了一個能用,然後我發現谷歌有一個藍芽的sample,一對比突然發現自己寫的好low,不嚴謹。於是就直接 谷歌 例程,修改了部分。首先當初寫的時候我有以下幾個疑
【Android開發 藍芽連線狀態】Android實時檢測藍芽連線狀態
http://blog.csdn.net/dengpeng0419/article/details/53178730 本程式能實時監聽並檢測Android藍芽的連線狀態,無論是通過介面上的switch按鈕開啟/關閉手機藍芽,還是手動開啟/關閉手機藍芽,程式都能監聽當前的狀態
Android開發 獲取系統已連線藍芽裝置
根據公司最近一個專案的需求,我們的APP要與藍芽低功耗裝置進行連線,不過有些情況下系統藍芽會預設連線已配對的裝置,這樣就會導致我們的APP搜尋不到這些系統已連線的裝置,從而導致APP無法與之進行連線並進行接下來的操作。其實系統連線與我們的APP連線並不衝突,問題就在
Android-經典藍芽(BT)-建立長連線傳輸短訊息和檔案
一.藍芽模組簡介 從藍芽4.0開始包含兩個藍芽晶片模組:傳統/經典藍芽模組(Classic Bluetooth,簡稱BT)和低功耗藍芽(Bluetooth Low Energy,簡稱BLE) 經典藍芽是在之前的藍芽1.0,1.2,2.0+E
Android開發藍芽篇之藍芽配對、連線與接收資料
首先是此部分涉及到的類 BluetoothAdapter 藍芽介面卡,即該類裡面包含了藍芽使用中常用到的一些API。 BroadcastReceiver 廣播接收者,不難猜測,藍芽裝置開啟或者關閉、搜尋到周邊裝置就要來通知應用,那麼Android系統就會以廣
Android開發——藍芽多裝置連線(四)
前言 經過一個多月的時間藍芽多裝置連線的重構終於告一段落了,這次的重構不止是程式碼方面的完善,還結合了一些使用者的使用場景,另外增加一些離線操作,使手機端對藍芽的操作更加的便捷,對藍芽裝置的管理更加統一。 場景分析 支援的場景 多裝置連線(一個
Android實現主動連線藍芽耳機
原網址:http://www.cnblogs.com/tt2015-sz/p/5616607.html private static final String TAG = "BluetoothA2DPTest"; private BroadcastReceive
Android手機靠近藍芽模組自動連線藍芽模組,斷後自動重連。也可以手機靠近手機自動連線。連線成功率百分之百,可後臺執行
全球首創的新技術。小黃人獨家推出基於bluetoothchat的,手機靠近藍芽模組自動連線藍芽模組,斷後自動重連,多裝置自由切換,記憶連線,可後臺執行。連線成功率百分之百。可以應用在工業通訊,手機遊戲,自動解鎖等領域。也可以手機靠近手機自動連線,換UUID即可。歡迎定製,演
Android Bluetooth 藍芽強度Rssi
轉自 https://blog.csdn.net/lhc1105/article/details/54585632 轉自 https://blog.csdn.net/jasonwang18/article/details/73131020 轉自 http://www.cnblogs.co
Android學習——藍芽(Bluetooth)
藍芽(Bluetooth) 藍芽(Bluetooth)是一種短距離的無線通訊技術標準。 藍芽協議 藍芽協議分為4層,即核心替代層、電纜替代協議層、電話控制協議層和採納的其他的協議層。這4種最重要的是核心協議層。藍芽協議包括基帶、鏈路管理、邏輯鏈路控制和適應協議四部分。其中鏈路
Android學習——藍芽傳輸
藍芽傳輸 通過藍芽傳輸資料與Socket類似。在網路中使用Socket和ServerSocket控制客戶端和服務端的資料讀寫。而藍芽通訊也由客戶端和服務端Socket來完成。藍芽客戶端Socket是BluetoothSocket,藍芽服務端Socket是BluetoothServer
Android學習——藍芽Socket通訊
藍芽Socket通訊 UUID 在藍芽中,每個服務和服務屬性都唯一地由 全域性唯一識別符號 ,Universally Unique Identifier(UUID)來校驗。正如它的名字所暗示的,每一個這樣的識別符號都要在時空上保證唯一。UUID類可表現為短整形(16或32位)和長
Android獲取藍芽地址(非mac地址)
方法: public static String getBlueToothAddress(Context context){ return android.provider.Settings.Secure.getString(context.getContentResol
Android BLE 藍芽快速開發框架。
FastBle 專案地址:Jasonchenlijian/FastBle 簡介:Android BLE 藍芽快速開發框架。 更多:作者 提 Bug 標籤: 藍芽- Thanks to th
Android手機藍芽總結之傳統藍芽
出處:Android手機藍芽總結之傳統藍芽 最近,公司有一個專案時關於手機藍芽和硬體藍芽相互通訊的需求。基於之前很久沒有學習硬體的知識,這次記錄下來,以備下次需要時使用。 首先,需要搞清楚一些基本的概要,藍芽3.0以前的是傳統藍芽,4.0以後的是低功耗藍芽,Android藍
微信小程式連線藍芽裝置
最近再弄小程式連線藍芽,分享一下。 首先值得注意的是,微信小程式只支援連線低功耗藍芽裝置 部分oppo和vivo手機要把定位也開啟,否則搜尋不到附近藍芽裝置(比如我坑爹的oppoR11就必須把定位和藍芽都開啟才行) 下面直接上程式碼,複製貼上就行,然後點選“開始掃描”(目前我知道蘋果手錶
Android BLE藍芽4.0開發—Android手機與BLE終端通訊
轉載自: https://blog.csdn.net/fu908323236/article/details/76208997 這篇部落格主要講解AndroidBLE藍芽4.0的基本概念,以及基礎用法。 BLE 即 Bluetooth Low Energy,藍芽低功耗技術,是藍芽
關於電腦連線藍芽耳機出現的一些問題,以及解決方案
首先,會有找不到對應的藍芽耳機裝置,這時,就說明,你的藍芽驅動不行,證明方法,網上有很多,自己查,重點是你需要重新下載藍芽驅動,重點來了 “關掉無線”---“關掉無線”---“關掉無線”,一定要關掉,否則,即使你的本來能用的,也一定用不了 ,等你下