編輯:Android開發教程
通常情況下,我們對藍牙的操作主要有:開啟和關閉藍牙、搜索周邊設備、能被周邊設備所發現、獲取配對設備、藍牙設備間的數據傳輸。
1、打開藍牙(當然首先要確保你的手機是有藍牙設備的)
藍牙設備主要分為兩部分,一部分為本地設備,另一部分為遠程設備。
BluetoothAdapter——本地設備,對藍牙操作首先就需要有一個BluetoothAdapter實例。常用的幾個方法如下:
cancelDiscovery()——取消本地藍牙設備的搜索操作,如果本地設備正在進行搜索,那麼調用該方法後將停止搜索操作。
Disable()——關閉藍牙設備。
Enable()——打開藍牙設備。相信大家都有過打開藍牙的經歷,一般情況下都會彈出一個窗口,說正在請求打開藍牙設備,你是不是允許雲雲。
getAddress()——獲取藍牙設備的MAC地址。
GetDefaultAdapter()——獲取本地的藍牙設備
getName()——獲取本地藍牙的名稱
getRemoteDevice(String address)——根據遠程設備的MAC地址來獲取遠程設備
startDiscovery()——藍牙設備開始搜索周邊設備
BuletoothDevice——遠程設備。
它所包含的方法和BluetoothAdapter一樣,不再累述。
View Code
// 獲取本地的藍牙適配器實例
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if(adapter!=null)
{
if(!adapter.isEnabled())
{
//通過這個方法來請求打開我們的藍牙設備
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(intent);
}
}
else
{
System.out.println("本地設備驅動異常!");
}
2、搜索周邊設備
對於Android查找發現藍牙設備使用BluetoothAdapter類的startDiscovery()方法就可以執行一個異步方式獲取周邊的藍牙設備,因為是一個異步的方法所以我們不需要考慮線程被阻塞問題,整個過程大約需要12秒時間,這時我們可以注冊一個 BroadcastReceiver 對象來接收查找到的藍牙設備信息,我們通過Filter來過濾ACTION_FOUND這個 Intent動作以獲取每個遠程設備的詳細信息,通過Intent字段EXTRA_DEVICE 和 EXTRA_CLASS可以獲得包含了每個BluetoothDevice 對象和對象的該設備類型 BluetoothClass。
實現一個自己的BroadCastReceiver類,並注冊這個類。
View Code
private class BluetoothReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
System.out.println(device.getAddress());
}
}
}
IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND); bluetoothReceive = new BluetoothReciever(); registerReceiver(bluetoothReceive, intentFilter);
因為在注冊一個Receiver後,程序並不知道該何時去回收它,所以需要我們自己重寫Activity類的onDestroy()方法。
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
unregisterReceiver(bluetoothReceive);
super.onDestroy();
}
Android ListView的一個問題
需要的功能很簡單,就是一個帶checkbox的列表,提交時需要知道用戶選擇了那些項目,如下圖:使用SimpleAdapter作為數據適配器,重寫SimpleAdapter
Android Studio中如何修改字體(font)大小(size)
Android Studio 默認編輯器(Editor)的方案(Scheme)是無法修改字體的, 可以Save as, 保存為新的方案(Scheme), 然後更改字體大小
可循環顯示圖像的Android Gallery組件
Gallery組件主要用於橫向顯示圖像列表,不過按常規做法。Gallery組件只能有限地顯示指定的圖像。也就是說,如果為Gallery組件指定了10張圖像,那麼當Gall
忘記Android手機開機密碼的解決方法
Android 手機使用Pattern圖案加密後,如果忘記密碼或多次解鎖失敗後,會被google自動鎖定,無法再次進入開機首頁。本文就是針對這種情況,研究探索了一種解決的