編輯:關於android開發
前言:項目用到藍牙開發,具體藍牙獲取硬件傳感器中的數據。
因為沒有藍牙開發的相關經驗,決定先了解一些藍牙開發的知識,再去看之前同事寫的藍牙相關代碼。
---------------------------------------------------------------------------------------------------
一、藍牙開發相關類
1、BluetoothAdapter
顯而易見,藍牙適配器。
通過這個類我們進行以下操作:
1、開關藍牙設備 2、掃描藍牙設備 3、設置/獲取藍牙狀態信息,例如:藍牙狀態值、藍牙Name、藍牙Mac地址等;
2、BluetoothDevice
藍牙設備,是我們連接的設備
獲取方法:
BluetoothData.SENSOR_DOWN_ADRESS = “20:16:05:25:32:31”; //MAC地址
BluetoothDevice sensor_down = mBluetoothAdapter.getRemoteDevice(BluetoothData.SENSOR_DOWN_ADRESS);
---------------------------------------------------------------------------------------------------
二、藍牙開發使用的基本步驟
1、權限
這個在AndroidManifest.xml文件中添加權限,這個是必須要的
//在程序中使用藍牙功能 <uses-permission android:name="android.permission.BLUETOOTH"/> //啟動設備發現或操縱藍牙設置 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
2、獲得藍牙適配器 BluetoothAdapter 對象 並根據獲得結果判斷當前設備是否支持藍牙
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter == null){
//設備不支持藍牙功能
Toast.makeText(this,"當前設備不支持藍牙功能",Toast.LENGTH_SHORT).show();
return ;
}
3、在設備支持藍牙功能的情況下,我們需要判斷藍牙功能是否開啟,若沒開啟,需給之開啟
isEnabled()判斷是否打開藍牙功能,enable()方法用於打開藍牙功能
if(!mBluetoothAdapter.isEnabled()){ boolean enable = mBluetoothAdapter.enable(); //返回值表示 是否成功打開了藍牙功能 if(enable){ Toast.makeText(this,"打開藍牙功能成功!",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this,"打開藍牙功能失敗,請到'系統設置'中手動開啟藍牙功能!",Toast.LENGTH_SHORT).show(); return ; } }
4、查詢已經配對的藍牙設備
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices(); //如果有配對的設備 if(pairedDevices.size() > 0){ ArrayList<String> mArrayAdapter = new ArrayList<>(); for(BluetoothDevice device : pairedDevices){ //通過array adapter在列表中添加設備名稱和地址 mArrayAdapter.add(device.getName() + "\n" + device.getAddress()); Log.i("bluetooth",device.getName() + "\n" + device.getAddress()); } }else{ Toast.makeText(this,"暫無已配對設備",Toast.LENGTH_SHORT).show(); }
5、查詢附近可用的藍牙設備
方法很簡單,就一句話
mBluetoothAdapter.startDiscovery();
注意此方法是異步執行的,相當於開啟一個子線程,整個過程大約耗時12秒。
切記,當我們搜索並成功連接到我們需要的設備的時候,需要及時的關閉搜索行為,可以使用cancelDiscovery。
接下來我們需要寫一個廣播來接收查詢到的設備數據
private final BroadcastReceiver mReceiver = new BroadcastReceiver(){ public void onReceive(Context context, Intent intent){ String action = intent.getAction(); allBlueToothDevice = new ArrayList<>(); if(BluetoothDevice.ACTION_FOUND.equals(action)){ BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); Log.i("bluetooth","可配對設備:"+device.getName() + "\n" + device.getAddress()); } } };
記得在onCreate()方法中注冊廣播:
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); registerReceiver(mReceiver, filter);
Android平台Camera實時濾鏡實現方法探討(七)--濾鏡基本制作方法(一) 關於如何制作濾鏡,知乎的這篇問答中的最高票給了比較專業的回答 另外,githunb
(轉)android底部彈出iOS7風格對話選項框(QQ對話框)--第三方開源--IOS_Dialog_Library,android刷ios7本文轉載於:http://
android ndk開發(二)實現一個官方demo,androidndk實現了一個官方的demo:bitmap-plasma(水波紋) 源代碼就在samples文件夾下
安卓動態調試七種武器之離別鉤 – Hooking(下),安卓hooking0x00 序 隨著移動安全越來越火,各種調試工具也都層出不窮,但因為環境和需求的不同,並沒有工具