蓝牙大概思路(传输数据无完整代码)

添加四个权限

    
    
    
    


打开蓝牙

 //调用系统开关蓝牙弹窗->用户手动允许
	Intent intent = new Intent();
	intent.setAction(BluetoothAdapter.ACTION_REQUEST_ENABLE);//开启蓝
    intent.setAction(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);//允许蓝牙被搜索
   intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,200);//设置允许被搜索时间200s内可以被搜索到
    startActivityForResult(intent,100);

关闭蓝牙

 bluetoothAdapter.disable();//强制关闭蓝牙

搜索附近蓝牙

bluetoothAdapter.startDiscovery();//搜索

已经配对的蓝牙

 adapter.getBondedDevices();

显示附近的蓝牙(需要用到广播接受者)

//1.注册广播
//2.解除注册
//3.定义广播接受者
//TODO 1:广播接收者:接受系统发送的广播,扫描到设备
    class MyRecevier extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            if(intent.getAction().equals(BluetoothDevice.ACTION_FOUND)){//扫描到一个
                //获得远程蓝牙设备
                BluetoothDevice device=intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                //放到listview中
                list.add(device);
                myAdapter.notifyDataSetChanged();
            }
        }
    }

配对蓝牙

bluetoothDevice.createBond();//发起配对

蓝牙传输数据(需要用到客户端和服务端)

//1.获得客户端Socket
BluetoothSocket socket = bluetoothDevice.createRfcommSocketToServiceRecord(uuid);
socket.connect();
//2.获得服务端Socket
BluetoothServerSocket serverSocket = bluetoothAdapter.listenUsingRfcommWithServiceRecord(bluetoothAdapter.getName(),uuid);
serverSocket.accpet();

你可能感兴趣的:(蓝牙大概思路(传输数据无完整代码))