安卓近距离通信--蓝牙通信开发

本文详细介绍了如何在Android应用中实现蓝牙连接,包括获取蓝牙适配器、启用蓝牙、设置设备可见性,以及服务端和客户端的连接、数据传输流程。通过实例展示了如何使用RFCOMM创建安全连接,以及关键步骤如创建ServerSocket、AcceptThread和ConnectThread的工作原理。

结果展示

在这里插入图片描述

实现方法

  • 获取蓝牙适配器

BluetoothAdapter 代表本地设备的蓝牙适配器。该BluetoothAdapter可以执行基本的蓝牙任务,例如启动设备发现,查询配对的设备列表,使用已知的MAC地址实例化一个BluetoothDevice类,并创建一BluetoothServerSocket监听来自其他设备的连接请求。

private final BluetoothAdapter adapter;

//构造方法,接收UI主线程传递的对象
    public ChatService(Context context, Handler handler) {
   
   
        //构造方法完成蓝牙对象的创建
        adapter = BluetoothAdapter.getDefaultAdapter();
        state = STATE_NONE;
        mHandler = handler;
    }
  • 开启蓝牙
if (!adapter2.isEnabled()) {
   
    //若当前设备蓝牙功能未开启
            Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableIntent, REQUEST_ENABLE_BT); //
        } else {
   
   
            if (chatService == null) {
   
   
                setupChat();  //创建会话
            }
        }
  • 获取本地蓝牙信息
		title = findViewById(R.id.title_left_text);
        title.setText(R.string.app_name);
        title = findViewById(R.id.title_right_text);
        // 得到本地蓝牙适配器
        adapter2 = BluetoothAdapter.getDefaultAdapter();
        if (adapter2 == null) {
   
   
            Toast.makeText(this, "蓝牙不可用", Toast.LENGTH_LONG).show();
            finish();
            return;
        }
  • 设置蓝牙可见性
private void ensureDiscoverable() {
   
    //修改本机蓝牙设备的可见性
        //打开手机蓝牙后,能被其它蓝牙设备扫描到的时间不是永久的
        if (adapter2.getScanMode() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值