精华内容
下载资源
问答
  • 讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对和蓝牙连接 1.蓝牙配对 搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对 蓝牙配对有点击配对和自动配对,点击配对就是我们...

    上篇文章:https://blog.csdn.net/huangliniqng/article/details/82185983

    讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对和蓝牙连接

    1.蓝牙配对

       搜索到蓝牙设备后,将设备信息填充到listview中,点击listiew则请求配对

      蓝牙配对有点击配对和自动配对,点击配对就是我们选择设备两个手机弹出配对确认框,点击确认后配对

      自动配对就是搜索到蓝牙设备后自动配对不需要输入pin码,但在基本开发中都不采用这种方式,所以这里说的是第一种配对方式

      点击配对,调用

    BluetoothDevice.class.getMethod
    

    进行配对,代码如下:

    Method method = BluetoothDevice.class.getMethod("createBond");
    Log.e(getPackageName(), "开始配对");
    method.invoke(listdevice.get(position));

    invoke传的参数就是要配对的设备(我这里是存在list中所以从list中取)

    点击之后怎会弹出配对确认框,且必须被配对的手机也点击确认配对才可以配对成功如图:

    同样的,如果我们想要配对的设备取消配对

    只需要将creatBond改为removeBond

    2.蓝牙连接:

      配对成功之后,就可以进行蓝牙连接了,蓝牙连接操作比较耗时,可以在一个线程中进行:

    调用自己定义的

    connect(listdevice.get(position));

    同样传递的参数也是设备device

    首先声明蓝牙套接字:

    private BluetoothSocket mBluetoothSocket;
    mBluetoothSocket = bluetoothDevice.createRfcommSocketToServiceRecord(BltContant.SPP_UUID);

    BltContant.SPP_UUID是一个UUID常量,至于UUID是什么,大家可以自行百度,因为详细的文章已经很多了。

    连接的时候要先判断蓝牙是否在扫描,如果在扫描就停止扫描,并且没有连接才进行连接,代码如下:

    if (bluetoothadapter.isDiscovering()) {
        bluetoothadapter.cancelDiscovery();
    }
    if (!mBluetoothSocket.isConnected()) {
        mBluetoothSocket.connect();
    }

    比如我们让其连接成功后,跳转到消息通讯界面,界面中有edittext输入框并显示当前连接的设备名称如图所示:

    在这里我们需要注意的是,当连接成功时,我们要让被连接的那部手机也自动跳转到聊天页面,所以我们要开启蓝牙服务端等待设备的连接,当设备连接时,自动跳转页面,蓝牙服务端代码如下:

    /**
     * 开启服务端
     */
    public void startBluService() {
    
        while (true) {
            try {
                if (getBluetoothServerSocket() == null){
                    Log.e("在这里获取的为空","在这里获取的为空");
                }
                bluetoothSocket = getBluetoothServerSocket().accept();
                if (bluetoothSocket != null) {
                    APP.bluetoothSocket = bluetoothSocket;
                    EventBus.getDefault().post(new BluRxBean(SERVER_ACCEPT, bluetoothSocket.getRemoteDevice()));
                    //如果你的蓝牙设备只是一对一的连接,则执行以下代码
                    getBluetoothServerSocket().close();
                    //如果你的蓝牙设备是一对多的,则应该调用break;跳出循环
                    //break;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    服务端运行也在一个线程中,一直处于等待状态直到有设备连接进来。

    下篇文章 蓝牙通信:https://blog.csdn.net/huangliniqng/article/details/82189735

    欢迎关注技术公众号,微信号搜索ColorfulCode 代码男人

    分享技术文章,投稿分享,不限技术种类,不限技术深度,让更多人因为分享而受益。

    展开全文
  • 手机蓝牙连接

    2017-09-08 10:49:49
    手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙连接手机蓝牙...
  • 1.安卓平台实现蓝牙连接,可以与全站仪蓝牙直接连接 2.支持同时连接多个蓝牙设备,自定义最大连接数 3.支持同时做蓝牙主机和从机,发起连接或者等待连接
  • 蓝牙连接 获取蓝牙设备数据 例如心跳速率
  • 蓝牙连接小程序

    2018-03-10 20:38:17
    小程序蓝牙连接小程序小程序蓝牙连接小程序小程序蓝牙连接小程序小程序蓝牙连接小程序
  • 对于手机用蓝牙连接打印机进行打印小票、打印图片、打印二维码,条形码 对手机连接蓝牙进行了处理,蓝牙连接成功进行打印,失败提示用户进行蓝牙列表选择 只需要连接一次,后面打印无需再次连接
  • 蓝牙连接实例

    2014-03-24 19:56:22
    使用android蓝牙连接远程蓝牙(益体康电子血压计),将血压计采集到高压、低压、心率数据解析后通过蓝牙连接传入android端处理。程序为项目节选,依工程形式打包发布到此,能完整运行,附送源码,希望能对有需要的...
  • 本文提供了一个类 用于在wince平台使用 便于开发蓝牙 包含 搜索蓝牙设备 建立蓝牙连接 建立蓝牙虚拟串口 等 拿了直接可以使用 基于 mfc 开发
  • java实现电脑和Android蓝牙连接源代码
  • Android蓝牙连接a2dp蓝牙耳机

    千次阅读 2018-12-06 17:20:08
    开发功能:Android中蓝牙连接A2DP设备,蓝牙耳机设备 功能实现: 本应用提供以下功能: 第一:开启蓝牙 第二:查找过滤掉A2DP设备 第三:连接A2DP设备 第四:断开连接A2DP设备 第五:保存通过本应用连接的A2DP设备 ...

    开发环境:

    开发工具:Androidstudio 适配机型:honor8(Android6.0), 坚果R1(Android8.0) 开发功能:Android中蓝牙连接A2DP设备,蓝牙耳机设备

    功能实现:

    本应用提供以下功能: 第一:开启蓝牙 第二:查找过滤掉A2DP设备 第三:连接A2DP设备 第四:断开连接A2DP设备 第五:保存通过本应用连接的A2DP设备 第六:当重新启动应用时加载已连接的设备

    A2dp介绍

    A2DP全名是Advanced Audio Distribution Profile 蓝牙音频传输模型协定。 A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。然而并非支持A2DP的耳机就是蓝牙立体声耳机,立体声实现的基本要求是双声道,所以单声道的蓝牙耳机是不能实现立体声的。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果手机支持蓝牙,只要装载A2DP协议,就能使用A2DP耳机了。还有消费者看到技术参数提到蓝牙V1.0 V1.1 V1.2 V2.0——这些是指蓝牙的技术版本,是指通过蓝牙传输的速度,他们是否支持A2DP具体要看蓝牙产品制造商是否使用这个技术

    代码介绍

    代码结构如下 ![在这里插入图片描述](http://www.demodashi.com/contentImages/image/20181206/mB4Q16mLDbNGEwY1dNa.png)

    本应用共包含五个java文件:
    Constants:常量值定义文件
    Utils:工具类,包含log包装,toast包装,以及sharedpreference的包装
    DeviceBean:封装BluetoothDevice, 包含device信息
    DeviceListAdapter:ListView的适配器,其中有对list列表,按钮点击事件的处理
    DeviceListActivity:应用中的唯一UI界面

    其中readMe为说明文件

    开启蓝牙代码:
    向系统发送请求,开启蓝牙,该过程会请求用户同意开启蓝牙

    Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    

    接下来开启蓝牙扫描,

    btAdapter.startDiscovery();
    

    在扫描过程中过滤掉非A2DP的设备

    if (btClass.getMajorDeviceClass() != BluetoothClass.Device.Major.AUDIO_VIDEO) { /**本demo只处理a2dp设备,所以只显示a2dp,过滤掉其他设备*/ break; }
    

    之后点击界面的connect按钮连接对应设备

    Method method = BluetoothA2dp.class.getMethod("connect", new Class[]{BluetoothDevice.class}); method.invoke(bluetoothA2dp, device);
    

    在连接成功后可以断开对应设备

    Method method = BluetoothA2dp.class.getMethod("disconnect", new Class[]{BluetoothDevice.class}); method.invoke(bluetoothA2dp, device);
    

    当应用退出或者进程被杀死后,重新进入应用时会加载原先已连接的蓝牙设备。

      /**
         * 获取到保存的a2dp连接
         * @param context
         * @return
         */
        static DeviceBean fetchConnectedDevice(Context context){
            DeviceBean deviceBean = null;
            SharedPreferences sharedPreferences = context.getSharedPreferences(
                    Constants.PREF_CONNECTED_DEVICE, Context.MODE_PRIVATE);
            String name = sharedPreferences.getString(Constants.PREF_DEVICE_NAME, null);
            String address = sharedPreferences.getString(Constants.PREF_DEVICE_ADDRESS, null);
            if (address != null) {
                deviceBean = new DeviceBean();
                deviceBean.setName(name == null ? address : name);
                deviceBean.setAddress(address);
                deviceBean.setState(BluetoothAdapter.STATE_CONNECTED);
            }
            return deviceBean;
        }
    

    断开设备:

    /**
         * 断开当前a2dp设备
         *
         * @param device device
         */
        private void disconnectA2dp(BluetoothDevice device) {
            if (bluetoothA2dp == null || device == null) {
                return;
            }
            try {
                Method method = BluetoothA2dp.class.getMethod("disconnect", new Class[]{BluetoothDevice.class});
                method.invoke(bluetoothA2dp, device);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
                Utils.logE(TAG, e.getMessage());
            } catch (InvocationTargetException e) {
                e.printStackTrace();
                Utils.logE(TAG, e.getMessage());
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
                Utils.logE(TAG, e.getMessage());
            }
        }
    
    

    具体代码参考源码,谢谢。

    备注,加载已连接的蓝牙设备是只针对该应用,也就是说只加载在该应用中进行连接的设备,对于通过设置连接的设备,不做处理。

    本应用只是提供一个雏形,更多功能需求还需要自己去完善

    功能演示

    开启蓝牙 ![在这里插入图片描述](http://www.demodashi.com/contentImages/image/20181206/qDfU05rYv27nhTf9D6s.png)

    开启扫描并过滤扫描结果
    在这里插入图片描述

    发起连接,在发起连接时,系统会自动为其进行配对操作
    在这里插入图片描述

    连接成功显示
    在这里插入图片描述

    在杀死应用或者重启手机,重新进入应用时依旧可以看到已连接的设备

    Demo下载地址

    [Demo下载地址](http://www.demodashi.com/demo/14624.html)
    展开全文
  • Hbulider蓝牙连接打印机源码,可直接打包生成apk,手机安装亲测。
  • 微信小程序实现蓝牙连接打印机打印功能,连接成功之后在线打印
  • Ble 蓝牙连接

    千次阅读 2015-08-04 00:21:05
    Ble 蓝牙连接

    本文主要介绍 Android 系统下 通过Ble 方式连接蓝牙的方法:
    Ble 蓝牙连接原理:
    这里写图片描述

    Ble 连接优点:

    1 : 低功耗,省电
    

    Ble 连接缺点:

    1 : 兼容性差,需要Android 4.3以上才能支持
    2 : 连接不稳定
    

    Ble 连接步骤:
    1: 获取远程设备信息

    BluetoothDevice device =
    mBluetoothAdapter.getRemoteDevice(address);

    2: 与远程设备建立一个gatt连接

    device.connectGatt(mContext, false, mGattCallback);

    3: 搜索设备

    mBluetoothGatt.discoverServices();

    4 : 初始化设别参数信息

    BluetoothGattService gattService =
    mBluetoothGatt.getService(UUID.fromString(UUID_SERVICE));

    BluetoothGattDescriptor descriptor =
    characteristic.getDescriptor(UUID.fromString(UUID_Des));

    5:断开连接

    mBluetoothGatt.disconnect();

    至此,手机与设备之间建立了一个通信连接,接下来我们可以通过回调 onCharacteristicRead 和 onCharacteristicWrite 方法来读取或写入设备信息。

    展开全文
  • android 获取蓝牙连接断开连接事件

    千次阅读 2017-07-28 14:30:08
    android 获取蓝牙连接状态




    加上蓝牙权限


    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>

    展开全文
  • 电脑通过蓝牙连接手机上网\电脑通过蓝牙连接手机上网\电脑通过蓝牙连接手机上网\电脑通过蓝牙连接手机上网\电脑通过蓝牙连接手机上网\电脑通过蓝牙连接手机上网\电脑通过蓝牙连接手机上网\电脑通过蓝牙连接手机上网\...
  • android蓝牙连接通信的实现

    万次阅读 多人点赞 2017-12-29 09:38:39
    那么蓝牙连接通信的过程就是这样,BluetoothAdapter先找到学校(就是连接目的设备),再通过通道找到目标班级,最后从班级中找到目标学生,这个学生就是我们设备之间通信的中介,很重要,学校有唯一的MAC地址,班级...
  • 微信小程序蓝牙连接

    千次阅读 2020-06-18 16:27:16
    微信小程序蓝牙连接问题 连接失败10013 ) 之前遇到一个问题,连接低功耗蓝牙设备,正常连接,但是连接过的设备就不在搜索周边设备直接连接,因为看到微信小程序文档中有这样的描述 : “若小程序在之前已有搜索过...
  • 自己写的通过蓝牙连接佳博打印机Demo+官方源码+连接过程的描述文档
  • JavaSE + bluecove 蓝牙连接

    万次阅读 多人点赞 2017-08-20 21:54:20
    最近公司准备将旧系统的.NET部分翻版,项目除了有后台的还有个与设备对接的客户端用蓝牙连接的,所有这周对相关技术做了一个验证。搜了一下Java 蓝牙相关信息,我去资料也太少了,少也就算了连bluecove库也是有问题...
  • 手机通过蓝牙连接打印机,从BluetoothSocket中getOutputStream()获取outputStream, 然后设置一下即可
  • 你是不是遇到过当使用蓝牙连接电脑是出现无法连接,显示以下内容: 这个时候可以先不用去更新驱动即可解决问题 尝试以下就是操作步骤,希望能够帮助到您。 点击蓝牙界面 设备和打印机(如图片) 鼠标右键单击,显示...
  • Android蓝牙连接,传输文件Demo

    热门讨论 2014-05-16 14:03:35
    Android蓝牙连接,传输文件Demo,里面有详细的注释
  • Android 蓝牙连接

    千次阅读 2019-05-01 18:06:32
    最多可以同时和7个其它蓝牙设备建立连接,进行通信。蓝牙可分为两大类:传统蓝牙蓝牙3.0规范之前),低功耗蓝牙蓝牙4.0规范之后)。 Android 从4.3版本(API Level 18)开始支持低功耗蓝牙Bluetooth Low Energy...
  • [Filco]蓝牙连接键盘

    千次阅读 2020-07-24 14:03:38
    第一次用蓝牙键盘,断连后的重连太痛苦了。蓝牙里搜不到键盘,搜到了PIN码不知道输入什么。 不输入PIN码连接 Filco方法: ...蓝牙连接时 直接提示输入 键盘的PIN。但是这个值时多少啊。——Readingboy(4楼回复) ...
  • 微信小程序蓝牙连接打印机

    千次阅读 2020-10-12 15:50:20
    微信小程序蓝牙连接打印机
  • Android蓝牙连接远程蓝牙事例

    千次阅读 2014-03-24 19:58:27
    本文介绍的事例,使用android蓝牙连接远程蓝牙(益体康电子血压计),将血压计采集到高压、低压、心率数据解析后通过蓝牙连接传入android端处理。程序为项目节选,依工程形式打包发布到此,能完整运行,附送源码,...
  • 小程序ios蓝牙连接失败

    千次阅读 2020-05-15 14:28:51
    小程序ios蓝牙连接失败 因为蓝牙需要使用定位,所以要先判断蓝牙定位是否打开并且是否授权位置信息 另一原因是ios要确保两个蓝牙开关都打开,一个是蓝牙总开关 另一个是手机设置-找到微信-蓝牙打开 ...
  • 上一篇文章介绍了“蓝牙扫描”,今天来说一下android蓝牙连接过程中133的问题: 我们经常在网上看到一些答案说需要释放gatt资源,这种方式可以在一定程度上减少出现133的概率。个人发现的一个规律是:一般出现蓝牙...
  • 蓝牙连接的管理模块需要提供连接相关的所有功能,要设计的方便使用,并尽量隐藏连接的细节。其他模块只要想使用蓝牙的连接,通过这个模块就可以了。
  • android 低功耗BLE蓝牙连接示例代码

    热门讨论 2016-10-19 13:51:35
    android 低功耗BLE蓝牙连接示例代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,465
精华内容 28,986
关键字:

蓝牙连接