本地蓝牙适配器,可以执行蓝牙相关的基本任务。例如开发扫描蓝牙设备,查询已经配对设备列表,实例化一个已知物理地址的蓝牙设备(@link BluetoothDevice),监听其他已经连接的蓝牙设备(@link BluetoothServerSocket),开始扫描蓝牙设备(Bluetooth LE devices :蓝牙4.0设备)。
4.2及以下:
BluetoothAdapter.getDefaultAdapter()
4.3及以上:
BluetoothManager bluetoothManager= (BluetoothManager) GlobalApplication.getInstance().getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter mBluetoothAdapter=bluetoothManager.getAdapter();
mBluetoothAdapter.isEnabled()
1.请求打开蓝牙
Intent enableIntent = new Intent( BluetoothAdapter.ACTION_REQUEST_ENABLE);
activity.startActivityForResult(enableIntent, Constant.REQUEST_ENABLE_BT);
2.直接打开蓝牙,不需要用户请求
mBluetoothAdapter.enable();
蓝牙是否在搜索设备:
mBluetoothAdapter.isDiscovering()
取消扫描:
mBluetoothAdapter.cancelDiscovery();
开始扫描:
1.是一个异步方法 工作是在子线程中进行的
2.系统发送BluetoothAdapter.ACTIOIN_DISCOVERY_STARTED的广播。
3.搜索其他蓝牙设备
4.找到一个设备就发送一个BluetoothDevice.ACTION_FOUND的广播
5.从广播接收器中就可以得到这个BluetoothDevice对象
mBluetoothAdapter.startDiscovery();
取消搜索:
扫描回调:
开始扫描ble设备,扫描到一个设备执行一次回调方法
mBluetoothAdapter.startLeScan(mLeScanCallback);
停止正在进行的蓝牙设备扫描:
mBluetoothAdapter.stopLeScan(mLeScanCallback);
蓝牙回调方法:
private static BluetoothAdapter.LeScanCallback mLeScanCallback=new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
}
};
还需要过滤是否为索要连接的设备
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
// 获取已经配对的设备
Set pairedDevicesSet = mBluetoothAdapter
.getBondedDevices();
页面更新:2024-04-27
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号