蓝牙是一种工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段的短距离通信技术,通信距离在10m左右,其采用分散式网络结构以及快跳屏和短包技术,支持点对点及多点通信,已被广泛应用于智能手机及可穿戴设备领域等各个领域。本文主要介绍基于android手机的,简单的蓝牙连接,配对通信,供大家学习探讨!
蓝牙的打开搜索功能,主应用了动态广播,ArrayAdapter与ListView进行显示,回调函数onActivityResult主要用于确认蓝牙是否打开和为下一步通信做准备。
BluetoothAdapter代表本地蓝牙适配器,即通过此来获取本机蓝牙。
BluetoothDevice代表远程蓝牙设备,获取远程蓝牙信息。
android中蓝牙的打开、搜索主要分为以下几步。
1.在AndroidManifest.xml中添加蓝牙权限。
1
2 |
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> |
2.启动蓝牙
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
private boolean openBtDevice() {
// 获得蓝牙匹配器 mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); // 蓝牙设备不被支持 if (mBluetoothAdapter == null) { Log.e(TAG, "Your device is not support Bluetooth!"); Toast.makeText(this, "该设备没有蓝牙设备", Toast.LENGTH_LONG).show(); return false; } // 使能蓝牙设备 if (!mBluetoothAdapter.isEnabled()) { // 隐式Intent Intent enableBtIntent = new Intent( BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUES_BT_ENABLE_CODE); } else { Toast.makeText(this, "蓝牙打开成功!", Toast.LENGTH_SHORT).show(); } return true; } // 当startActivityForResult启动的 画面结束的时候,该方法被回调 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUES_BT_ENABLE_CODE && resultCode == RESULT_OK) { Toast.makeText(this, "蓝牙打开成功!", Toast.LENGTH_SHORT).show(); } } |
3.搜索蓝牙
已经配对过的蓝牙设