導航:首頁 > 操作系統 > android藍牙

android藍牙

發布時間:2022-01-13 04:35:10

1. android藍牙4.0怎麼設置藍牙寫許可權

基本步驟:
獲取藍牙適配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
如果BluetoothAdapter 為null,說明android手機沒有藍牙模塊。
判斷藍牙模塊是否開啟,blueadapter.isEnabled() true表示已經開啟,false表示藍牙並沒啟用。
啟動配置藍牙可見模式,即進入可配對模式Intent in=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200);
startActivity(in); ,200就表示200秒。
獲取藍牙適配器中已經配對的設備Set<BluetoothDevice> device=blueadapter.getBondedDevices();
還需要在androidManifest.xml中聲明藍牙的許可權
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
接下來就是根據自己的需求對BluetoothAdapter 的操作了。

2. android藍牙怎麼控制手機

機連接不上藍牙耳機有以下幾個解決辦法:一、藍牙耳機沒有進入配對模式;解決方法:每一款藍牙耳機都有一個功能按鍵,長按多功能按鍵直至紅藍燈交替閃動後鬆手,打開手機藍牙進行搜索 配對即可連接解決方法:同時按住 多 功能按鍵和音量控制+鍵 大約4秒 紅燈閃動一下,表示清除所有配對記錄,然後再長按多 功能 按鍵直至紅藍燈交替閃動後,打開手機藍牙配 對連接即可三、手機藍牙與 耳機藍牙版本不兼容。這個無法解決,建議 找耳機賣家進行退換貨。

3. Android中如何實現藍牙的配對與連接

藍牙功能可以參考下面的操作打開使用:
1.打開其他設備的藍牙,並使其對其他設備可見。
2.打開下拉頂簾,點擊藍牙圖標使其變為綠色,跳出提示框,勾選對其他設備可見。
3.點擊掃描,搜索到其他設備後,點擊該設備名稱,雙方點確定後配對成功。
4.選擇要傳輸的文件,共享通過藍牙即可傳輸文件。

4. 藍牙Android BT 是什麼意思

藍牙是一個通訊的協議,用於無線傳輸,是大多數android系統手機都有的。
android是一款手機系統,開發android應用,就是要把應用安裝到這類手機上,其競爭對手主要是ios。
BT,一般是指種子下載,還有一個意識是「生物技術」。

對於你說得藍牙Android BT,我不清楚,我猜想應該是用藍牙技術實現一個在android系統上運行的種子(並行)應用,或上傳或下載,。

5. android 藍牙 怎麼入門

入手一個新的模塊或應用,當然首先要知道它都有什麼了,與它相關的代碼在那裡,所以先一起看下藍牙代碼分布吧。


1. 代碼分布:

packages/apps/Bluetooth/

看這路徑肯定是藍牙應用方面的代碼了,主要是關於藍牙應用協議的表現代碼,包括opp、hfp、hdp、a2dp、pan等等,這些名詞後面再解釋。

frameworks/base/core/java/android/server/

4.2以後這個目錄雖然還有了,但裡面代碼已經轉移到應用層了,就是前面那個目錄,所以4.2.2上的藍牙這里可以忽略。

framework/base/core/java/android/bluetooth

這個目錄里的代碼更像一個橋梁,裡面有供java層使用一些類,也有對應的aidl文件聯系C、C++部分的代碼,還是挺重要的。

kerneldriversluetoothBluetooth

具體協議實現。包括hci,hid,rfcomm,sco,SDP等協議

kernel etluetooth Linux kernel

對各種介面的Bluetoothdevice的驅動。例如:USB介面,串口等,上面kernel這兩個目錄有可能看不到的,但一定會有的。

externalluetoothluedroid BlueZ (應用空間協議),官方藍牙協議棧。

systemluetoothBluetooth 適配層代碼,和framework那個作用類似,是串聯framework與blueZ的工具。

大致代碼分布就是這些,初步查看後讓我們再來看下藍牙的整體結構。


2.整體結構:

這部分直接上圖了,看著直觀些。圖中把JNI部分雖然在目前4.2的代碼中在packages層,這里還是畫在Framework層了,說明下希望

不要引起理解的誤會。從圖上可以感覺到整體流程和以前變化不大,所以流程方面的文章看4.1或更早的應該問題也不大。

PS:上圖關於藍牙協議棧的說明有誤,4.2里已經不再是bluez了,在些更正一下,當然協議棧這一部分還是要有的,新的協議棧看下面英文:


Android 4.2 introces a new Bluetooth stack optimized for use with Android devices. The new Bluetooth stack developed in

collaboration between Google and Broadcom replaces the stack based on BlueZ and provides improved compatibility and reliability.

google和broadcom合作開發了一個新藍牙協議棧,老版本的兼容性問題在所難免了。在此感謝網友andger032的提醒。


3.常用類和名詞解釋:

luetooth 目錄下

BluetoothEnabler.java 界面上藍牙開啟、關閉的開關就是它了,

BluetoothSettings.java 主界面,用於管理配對和連接設備

LocalBluetoothManager.java 提供了藍牙API上的簡單調用介面,這里只是開始。

CachedBluetoothDevice.java 描述藍牙設備的類,對BluetoothDevice的再封裝

BluetoothPairingDialog.java 那個配對提示的對話框


/packages/apps/Phone/src/com/android/phone/

BluetoothPhoneService.java 在phone的目錄肯定和電話相關了,藍牙接聽掛斷電話會用到這個


/packages/apps/Bluetooth/src/com/android/bluetooth/btservice/

AdapterService.java 4.2後才有的代碼,藍牙打開、關閉、掃描、配對都會走到這里,其實更准確的說它替代了4.1之前的BluetoothService.java,原來的工作就由這個類來完成了。說到這里不能不說4.2藍牙的目錄變了,在4.1及以前的代碼中packages層的代碼只有opp協議相關應用的代碼,也就是文件傳輸那部分,而4.2的代碼應用層的代碼則豐富了許多,按具體的藍牙應用協議來區別,分為以下文件夾(這里一並對藍牙一些名詞作個簡單解釋):

a2dp 藍牙立體聲,和藍牙耳機聽歌有關那些,另還有個avrcp--音頻/視頻遠程式控制制配置文件,是用來聽歌時暫停,上下歌曲選擇的。

btservice 這個前面AdapterService.java的描述大家應該能猜到一些,關於藍牙基本操作的目錄,一切由此開始。

hdp 藍牙關於醫療方面的應用 Bluetooth Health Device Profile

hfp 和電話相關,藍牙接聽、掛斷電話 Hands-free Profile

hid 人機交互介面,藍牙滑鼠鍵盤什麼的就是這個了

opp 不多解釋,以前就有。

pan 描述了兩個或更多個 Bluetooth 設備如何構成一個即時網路,和網路有關的還有串列埠功能(SPP),撥號網路功能(DUN)

pbap 電話號碼簿訪問協議(Phonebook Access Profile)

android 4.2的藍牙應用層部分代碼更豐富了,雖然有些目錄還沒具體代碼,不過說不準哪個版本更新就有了,就像4.0添加了hdp醫療那部分一樣。

另外原本在framework的JNI代碼也被移到packages/apps/bluetooth當中。

/frameworks/base/core/java/android/bluetooth/目錄下


BluetoothA2dp.java A2DP的功能實現

BluetoothAdapter.java 藍牙action的定義,虛擬設備屬性以及操作方法

BluetoothAudioGateway.java 藍牙語音網關

BluetoothClass.java 藍牙設備類型的定義

BluetoothDevice.java 藍牙設備屬性

BluetoothDevicePicker.java 定義遠程藍牙設備的特性,比如需要認證,設備類型

BluetoothHeadset.java 定義藍牙headset功能的屬性以及介面

BluetoothInputStream.java 藍牙流介面的實現(輸入流)

BluetoothOutputStream.java 藍牙流介面的實現(輸出流)

BluetoothServerSocket.java 藍牙socket服務端具備的方法

BluetoothSocket.java 藍牙socket的封裝

BluetoothUuid.java 藍牙uuid的定義以及uuid的解析

以上java文件在使用具體功能會用到,現在只是簡單描述下,至於具體使用在後續文章用到時再給出。同時代碼說明部分也就寫這些了

對於C、C++部分的代碼一方面沒看那麼多,另一方面根據android JNI的命名習慣,大家找起來也很容易。


4.後續分析:

前面從整體上描述藍牙的基本知識,落實在具體的代碼分析上,我們按幾個主線功能來走,藍牙的開關、搜索配對、藍牙耳機與電話和文件傳輸,

這幾個也算是藍牙的常用必備功能了,所以在後續文章中將按著這個順序來跟一下它們代碼調用流程。希望可以讓你快速的了解藍牙,當然如果有失誤

轉載

6. 如何實現android藍牙自動配對連接

android藍牙自動配對連接的具體代碼如下:
1. 獲取藍牙適配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
如果BluetoothAdapter 為null,說明android手機沒有藍牙模塊。
2. 判斷藍牙模塊是否開啟,blueadapter.isEnabled() true表示已經開啟,false表示藍牙並沒啟用。
3. 啟動配置藍牙可見模式,即進入可配對模式Intent in=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200);
startActivity(in); ,200就表示200秒。
4. 獲取藍牙適配器中已經配對的設備Set<BluetoothDevice> device=blueadapter.getBondedDevices();
當然,還需要在androidManifest.xml中聲明藍牙的許可權
<uses-permission android:name="android.permission.BLUETOOTH" />

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
5.自動配對設置Pin值

static public boolean autoBond(Class btClass, BluetoothDevice device, String strPin)
throws Exception {
Method autoBondMethod = btClass.getMethod("setPin", new Class[] { byte[].class });
Boolean result = (Boolean) autoBondMethod
.invoke(device, new Object[] { strPin.getBytes() });
return result;
}

6.開始配對請求
static public boolean createBond(Class btClass, BluetoothDevice device) throws Exception {
Method createBondMethod = btClass.getMethod("createBond");
Boolean returnValue = (Boolean) createBondMethod.invoke(device);
return returnValue.booleanValue();
}

7. 如何使用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回調。你必須擴展這個類並實現回調方法接收更新應用程序的注冊狀態和藍牙通道狀態的變化。

8. android 如何修改藍牙搜索設備的最大數目,android藍牙

安卓系統的平板電腦,在設置裡面可以查看到藍牙地址。手機查詢藍牙地址的話,在撥號鍵盤上鍵入:*#2820#查詢藍牙MAC地址。現在也可來查一下啦~步驟如下:(1)在主屏幕上輕按「設置」按鈕。或者,按下物理按鈕「Menu」,選擇「設置」。(2)在設置的列表下,輕按選擇「關於本機」按鈕。(3)然後,輕按「狀態消息」按鈕。(4)查看「藍牙地址」注意:必須開啟藍牙,才能查看到藍牙地址。編者按:安卓系統平板電腦中藍牙地址,對於普通用戶,很少能用得著。藍牙地址可以說是連接到設備的唯一通道,通過識別協議,可實現設備間的數據傳輸。一般,我們用不著,但如果有人問你查詢「藍牙地址」,你就可以告訴他。

9. android 怎麼連接藍牙設備

先展示代碼結構
步驟閱讀
2
連接藍牙類
類名:MainActivity(有點偷懶,沒有起表意的類名。)
步驟閱讀
3
要聲明的控制項和變數等
步驟閱讀
4
在onCreate聲明控制項
步驟閱讀
5
ToogleButton設置開關狀態
聲明一個組件願意接收
IntentFilter intent = new IntentFilter();
步驟閱讀
6
BroadcastReceiver廣播接收器
步驟閱讀
步驟閱讀
7
listview點擊事件
OnItemClickListener

OnClickListener
步驟閱讀
步驟閱讀
8
藍牙連接
步驟閱讀
9
退出消耗頁面是的onDestroy()
步驟閱讀
10
布局結構圖
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.bluetooth_connection.MainActivity" >
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="horizontal" >
<Button android:id="@+id/btnSearch" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="搜索" android:layout_weight="1" />
<Button android:id="@+id/btnExit" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="退出" android:layout_weight="1" />
<Button android:id="@+id/btnDis" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="開啟藍牙" android:layout_weight="1" /> </LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical" >
<ToggleButton android:id="@+id/tbtnSwitch" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_horizontal" android:textOff="關閉藍牙" android:textOn="開啟藍牙" /> </LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.3" android:orientation="vertical" >
<ListView android:id="@+id/lvDevices" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#f1f1f1" android:cacheColorHint="#ff333333" android:fadingEdge="none" android:scrollbars="none" > </ListView> </LinearLayout> </LinearLayout>
</RelativeLayout>

步驟閱讀
11
界面效果

步驟閱讀

12
例子如下

10. Android開發 藍牙連接問題

Android 藍牙編程的基本步驟:
1.獲取藍牙適配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
如果BluetoothAdapter 為null,說明android手機沒有藍牙模塊。
判斷藍牙模塊是否開啟,blueadapter.isEnabled() true表示已經開啟,false表示藍牙並沒啟用。
2.啟動配置藍牙可見模式,即進入可配對模式Intent in=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200);
startActivity(in); ,200就表示200秒。
3.獲取藍牙適配器中已經配對的設備Set<BluetoothDevice> device=blueadapter.getBondedDevices();
4.還需要在androidManifest.xml中聲明藍牙的許可權
<uses-permission android:name="android.permission.BLUETOOTH" />

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
接下來就是根據自己的需求對BluetoothAdapter 的操作了。

閱讀全文

與android藍牙相關的資料

熱點內容
印度加密代幣機票 瀏覽:415
哪個app可以看江西2套 瀏覽:677
哪個小說app好用還免費 瀏覽:663
win7ping命令 瀏覽:505
程序員看圖識演算法 瀏覽:947
vs設置遠程編譯 瀏覽:598
速騰汽車怎麼給安卓手機充電 瀏覽:270
蘋果安卓換機用什麼軟體好 瀏覽:261
華為通話加密電話 瀏覽:60
什麼伺服器可以代替計算機 瀏覽:962
伺服器當電腦用怎麼安裝顯卡 瀏覽:521
回女友消息神器python 瀏覽:52
App分類框怎麼添加 瀏覽:546
海爾帥王子冰箱壓縮機啟動跳閘 瀏覽:490
cadfill命令什麼意思 瀏覽:338
中公專項題庫pdf 瀏覽:935
拼多多緩存在哪個文件夾 瀏覽:645
安卓無卡汽車導航怎麼升級 瀏覽:52
cs管理員命令是什麼 瀏覽:128
華為v10模擬加密門禁卡 瀏覽:727