android 传统蓝牙开发
来源:互联网 发布:网络宣传部职责 编辑:程序博客网 时间:2024/06/05 09:42
1.获得蓝牙适配器
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
2.蓝牙的打开和关闭
if (!mBluetoothAdapter.isEnabled()) { new Thread(new Runnable() { @Override public void run() { mBluetoothAdapter.enable(); } }).start();}
if (mBluetoothAdapter.isEnabled()) mBluetoothAdapter.disable();3.扫描蓝牙
if (mBluetoothAdapter.isDiscovering()) { mBluetoothAdapter.cancelDiscovery();}mBluetoothAdapter.startDiscovery();Toast.makeText(getBaseContext(), "正在搜索设备......", Toast.LENGTH_SHORT).show();
4.蓝牙状态变化都会有广播
if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {//蓝牙状态改变 Log.i("ACTION_STATE_CHANGED", "----------"); setPairListView();} else if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(intent.getAction())) {//绑定不同设备状态改变 Log.i("BOND_STATE_CHANGED", "----------"); if (device.getBondState() == BluetoothDevice.BOND_BONDED) { //如果绑定的设备跟点击的设备名称相同,表示配对成功,保存进蓝牙路径; if (device.getName().equals(mDevice)) { mFileStore.writeBluetooth(mDevice); } //更新mPairListView和mNewListView for (String s : mNewDatas) { if (s.equals(device.getName())) { mNewDatas.remove(s); setNewListView(); setPairListView(); return; } } } setPairListView();} else if (BluetoothDevice.ACTION_FOUND.equals(intent.getAction())) {//搜索到设备 Log.i("ACTION_FOUND", "----------"); newDevices.add(device); if (device.getBondState() != BluetoothDevice.BOND_BONDED) { if (mNewDatas.size() > 0) { boolean exist = false; Log.i("aaa", "onReceive: " + mNewDatas.toString()); for (String s : mNewDatas) { if (s.equals(device.getName())) { exist = true; } } if (!exist) { mNewDatas.add(device.getName()); } } else { mNewDatas.add(device.getName()); } setNewListView(); }} else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(intent.getAction())) {//搜索状态改变 Log.i("DISCOVERY_STARTED", "----------"); mNewDatas.clear(); setNewListView();}
5.绑定配对蓝牙
mDevice = mNewDatas.get(position);if (mBluetoothAdapter.isDiscovering()) { mBluetoothAdapter.cancelDiscovery();}Toast.makeText(getBaseContext(), "正在配对......", Toast.LENGTH_SHORT).show();for (BluetoothDevice device : newDevices) { if (device.getName().equals(mNewDatas.get(position))) { Log.i("mNewListView", "----------device.getName():" + device.getName()); try { Method createBondMethod = BluetoothDevice.class.getMethod("createBond"); createBondMethod.invoke(device); } catch (Exception e) { e.printStackTrace(); } return; }}
6.获得已绑定的蓝牙
pairedDevices = mBluetoothAdapter.getBondedDevices();
7.链接蓝牙()绑定蓝牙之后就是以配对蓝牙以配对蓝牙就可以链接了。)
//链接蓝牙设备private void connectBluetooth(BluetoothDevice device) { // 固定的UUID final String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB"; UUID uuid = UUID.fromString(SPP_UUID); try { device.createRfcommSocketToServiceRecord(uuid).connect(); } catch (IOException e) { e.printStackTrace(); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(BluetoothActivity.this, "连接失败!", Toast.LENGTH_SHORT).show(); } }); }}
至于传统蓝牙的传输暂时没有做过,不过ble蓝牙的链接,传输数据是有做过的。晚点上传
阅读全文
0 0
- android 传统蓝牙开发
- 【android 蓝牙开发——传统蓝牙】
- android 传统蓝牙开发 (附示例源码)
- Android中传统蓝牙模块开发小结
- Android传统蓝牙入门
- Android 传统蓝牙(1)
- 安卓传统蓝牙开发教程
- Android开发之BlueTooth--最简单的Andorid传统蓝牙通讯Demo
- android 传统蓝牙Bluetooth联通性
- Android——搜索传统蓝牙设备
- 蓝牙----Android的蓝牙开发
- Android 蓝牙开发-蓝牙通信
- Android蓝牙开发【三】蓝牙Hid开发
- Android蓝牙开发
- Android蓝牙应用开发
- Android蓝牙开发
- Android 蓝牙开发详述
- 初涉Android蓝牙开发
- EJTAG调试总计
- Android Studio项目上传到GitHub
- 开源系统ThinkSNS+ APP端V1.2.8更新播报
- 56. Merge Intervals
- jdbc.properties查询中文乱码,&不能出现在jdbc.properties文件中
- android 传统蓝牙开发
- Android Studio插件整理
- Xcode 9 添加ScrollView 或者TableView,隐藏导航栏,少20 个左右像素
- Exercise14_11
- 50000的阶乘
- ButterKnife框架原理和使用
- php静态缓存学习-2.使用模板文件生成静态html
- 使用macbook抓取无线网络空口包
- 草稿