精华内容
下载资源
问答
  • 内含apk安装包和源码。功能为:android扫描蓝牙连接蓝牙、和蓝牙信息交互(收发信息)等
  • WIN10和Ubuntu共享蓝牙4.0连接配对基本原理对于蓝牙3.0设备对于蓝牙4.0设备流程0.UBUNTU下配对蓝牙设备1.查看Windows10下的牙蓝信息2.修改UBUNTU下蓝牙信息:功能快捷键合理的创建标题,有助于目录的生成如何改变...

    基本想法

    蓝牙设备需要与系统做好连接(及相应的标记)才能工作。当蓝牙设备与一个系统连接时,双方就记下了相应的信息,以确保同步双方相互识别且不会误连接到其它设备。所以,换一个新系统重新连接蓝牙设备后,新系统与设备会同时修改相应的信息。因此,双系统同时连接同一蓝牙设备,即需要在保持蓝牙内标记不变的情况下,将双系统内关于蓝牙的信息变得统一。

    对于蓝牙3.0设备

    请参考此教程:http://www.linuxdiyf.com/linux/29086.html
    核心是将Windows与ubuntu系统下的linkkey调整至相同,修改Win或Ubuntu系统均可
    (未实测)

    对于蓝牙4.0设备

    本方案基于Winows10系统内蓝牙信息,修改UBUNTU蓝牙设备信息,达到双系统直接可用的目的。
    流程照搬https://console.systems/2014/09/how-to-pair-low-energy-le-bluetooth.html内容,亲测可行(鼠标及键盘),参考部分其它流程修改,作笔记及部分思考。
    实测设备:
    笔记本: DELL Latitude 5490
    蓝牙鼠标:Logitech M720
    蓝牙键盘:Logitech K375s
    系统:
    Windows: Windows 10 64bit(博主的非主要系统,其它设置忘记了)
    Linux: 4.15.0-58-generic #64~16.04.1-Ubuntu

    流程

    0.UBUNTU下配对蓝牙设备

    0.0 配对蓝牙设备
    配对蓝牙,请自行完成。是为了预先生成相应的配制文件,后面只需修改参数信息。(如果非常了解相关内容,可以自己编写相应文件和权限,可跳过,非常不推荐)。
    重启至Windows

    1.查看Windows10下的牙蓝信息

    1.0 配对蓝牙设备
    重新配对蓝牙设备,请自行完成

    1.1 权限问题
    Windows10下,蓝牙信息在注册表内容需要借助软件获取:psexec.exe
    下载到某文件夹下,如用户\Downloads

    1.2 蓝牙信息导出
    管理员权限下运行cmd.exe(在C:\Windows\System32下,其实Windows不区分大小写,所以……)
    通过资源管理器(或“我有电脑”)进入C:\Windows\System32目录,右键点击cmd.exe,点出以管理员身份运行
    然后输入

    cd c:\Users\用户\Downloads
    psexec.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys
    

    将相关注册表信息导出于C:\BTKeys.reg,之后linux下可直接以文本形式查看。推荐gedit(vim有可能有乱码情况,懒得折腾编码了)
    如:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys]
    
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\蓝牙控制器地址值]
    "MasterIRK"=hex:……
    
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\蓝牙控制器地址值\设备1地址值]
    "LTK"=hex:……
    "KeyLength"=dword:……
    "ERand"=hex(b):……
    "EDIV"=dword:……
    "IRK"=hex:……
    "Address"=hex(b):……
    "AddressType"=dword:……
    "CSRK"=hex:……
    "OutboundSignCounter"=dword:……
    "MasterIRKStatus"=dword:……
    "AuthReq"=dword:……
    
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\蓝牙控制器地址值\设备2地址值]
    ……
    
    

    上栏中文部分为数值

    2.修改UBUNTU下蓝牙信息:

    重启至ubuntu系统
    查看蓝牙设备:

    bluetoothctl
    

    一般显示出蓝牙设备信息,例如:

        [NEW] Controller 蓝牙控制器地址 XXXXXXX [default]
        [NEW] Device XX:XX:XX:XX:XX:XX Keyboard K370/K375
        [NEW] Device 鼠标蓝牙地址 M720 Triathlon
        [NEW] Device XX:XX:XX:XX:XX:XX Redmi AirDots_R
    

    退出

    quit
    

    第一行是电脑 蓝牙控制器地址
    后面三行是相应的设备:博主的是键盘、鼠标、耳机
    现以鼠标为例。

    2.1 鼠标蓝牙地址检查
    蓝牙控制器地址 应当蓝牙控制器地址值(reg文件)相对应;
    鼠标蓝牙地址 需要 与 C:\BTKeys.reg中的 某蓝牙设备地址值 (reg文件)相对应,如:
    84:AB:D4:A2:5E:E1 <=> 84abd4a25ee1
    博主这边是 鼠标蓝牙地址设备1地址值 相对应。 如果略有不同,例如:84:AB:D4:A2:5E:E0 <=> 84abd4a25ee1,需要在ubuntu下修改鼠标蓝牙地址对应设备地址 (博主的情况是设备1地址)以确保对应。1

    2.2 鼠标蓝牙参数修正
    相关信息在/var/lib/bluetooth/之下。因为权限问题,请通过su帐户操作:

    sudo su
    cd /var/lib/bluetooth/蓝牙控制器地址
    ls
    

    将显示出所有蓝牙设备文件夹和其它文件。文件夹名字就是设备地址。如需要修改(见2.1),通过重命名完成,e.g.

    mv 鼠标蓝牙地址 对应设备地址 # e.g. mv 84:AB:D4:A2:5E:E0 84:AB:D4:A2:5E:E1
    

    然后,查看并修改蓝牙设备的参数:

    cat 对应设备地址/info
    

    将显示

    [General]
    Name=M720 Triathlon
    ……
    
    [ConnectionParameters]
    ……
    
    [IdentityResolvingKey]
    Key=……
    
    [LocalSignatureKey]
    Key=……
    ……
    
    
    [LongTermKey]
    Key=……
    Authenticated=0
    EncSize=……
    EDiv=……
    Rand=……
    
    [DeviceID]
    ……
    

    修改info文件:从C:\BTKeys.reg获取相应信息,填入以下几处:

    • LTK 去除"hex:"、",",字母转成大写 => LongTermKey 下的 Key
    • KeyLength 去除"dword:",数字变成10进制 => LongTermKey 下的 EncSize
    • ERand 去除"hex(b):",逆序排列,再去除",",将所得长数字变成10进制 => LongTermKey 下的 Rand,例如hex(b):f5,d4,ac,c1,17,f2,63,80 => 8063f217c1acd4f5 => 9251504243396629749
    • EDIV 去除"dword:",数字变成10进制 => LongTermKey 下的 EDiv
    • CSRK去除"hex:"、",",字母转成大写 => LocalSignatureKey 下的 Key
    • IRK去除"hex:"、",",字母转成大写 => IdentityResolvingKey 下的 Key

    重启蓝牙服务后,鼠标应当可用

        service bluetooth restart
    

    完成


    1. 注:只有一个设备时,自然知道是一一对应;多个设备时,由博主经验,二者只会有少量不对应点(六对数值中有1对不同),所以应该能快速确定对应的关系,寻找到该修改的设备。 ↩︎

    展开全文
  • 讲解了打开蓝牙设备和搜索蓝牙设备,这篇文章来讲解蓝牙配对蓝牙连接 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 代码男人

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

     

    展开全文
  • 例如Win10动态锁自动锁定功能就是利用电脑与手机的蓝牙连接实现的。下面MS酋长就来分享一下Win10电脑蓝牙配对连接手机的方法:首先,把电脑和手机的蓝牙都打开。Win10电脑打开蓝牙开关的方法是,打开Windows设置,...

    虽然WiFi无线连接现在是主流,但蓝牙无线连接仍然以独特的优势得以在许多设备中保留。例如Win10动态锁自动锁定功能就是利用电脑与手机的蓝牙连接实现的。下面MS酋长就来分享一下Win10电脑蓝牙配对连接手机的方法:

    首先,把电脑和手机的蓝牙都打开。Win10电脑打开蓝牙开关的方法是,打开Windows设置,依次进入“设备 - 蓝牙和其他设备”设置界面,即可看到蓝牙开关(通过操作中心可以更便捷地开关蓝牙,下面会介绍)。如图:

    3956e6e37c604d6bf96a327690e38fb9.png

    我们还有两种方法可以直达“蓝牙和其他设备”设置界面。

    方法一:

    点击屏幕右下角的通知图标打开“通知和操作中心”,可以看到“蓝牙”快速操作按钮,点击即可开关蓝牙,在“蓝牙”快速操作按钮上点击右键。如图:

    18a238adb89c1bb699353825fcbbb93d.png

    选择“转到设置”即可打开“蓝牙和其他设备”设置界面。

    方法二:

    右键点击任务栏通知区域的蓝牙图标,选择“添加蓝牙设备”。如图:

    1cf90b3b4b10ee72e47c7b2da5adfe69.png

    也可以直接打开“蓝牙和其他设备”设置界面。

    在“蓝牙和其他设备”设置界面点击“添加蓝牙或其他设备”,弹出“添加设备”窗口。如图:

    e2449eb88c2f2df1677fbb0ee716f4ef.png

    选择“蓝牙”,Win10电脑就会搜索你已经打开蓝牙的手机,在搜索到的设备列表中选择你的手机。如图:

    5e5ab0f20a3036ed2a10fab4971cac1b.png

    这时会同时在Win10电脑和手机上弹出连接配对PIN码。如图:

    472a8c197f31e268c9ce12fa84c09878.png
    f198c7d9d226d9ec35bbc6953c29ddfa.png

    确认一致后,点击“连接”或“配对”,如果提示“你的设备已准备就绪。已配对”,即说明Win10电脑蓝牙连接手机成功。

    展开全文
  • Android蓝牙自动配对demo,如果需要手动配对修改一下socket获取方式,代码中是不用配对就可连接通信
  • 蓝牙学习模块 包括蓝牙搜索 配对 连接 以及数据的通讯
  • 很多小伙伴都遇到过win10系统蓝牙配对但未连接的困惑吧,一些朋友看过网上零散的win10系统蓝牙配对但未连接的处理方法,并没有完完全全明白win10系统蓝牙配对但未连接是如何解决的,今天小编准备了简单的解决...

    很多小伙伴都遇到过win10系统蓝牙已配对但未连接的困惑吧,一些朋友看过网上零散的win10系统蓝牙已配对但未连接的处理方法,并没有完完全全明白win10系统蓝牙已配对但未连接是如何解决的,今天小编准备了简单的解决办法,只需要按照1、蓝牙设备的状态文本在“设置” >“设备” >“蓝牙和其他设备” 中发生更改;   2、蓝牙设备只有在设备真正处于使用状态时才显示为“已连接”(例如,处于连接状态并且正在播放音乐的蓝牙扬声器)。当设备未处于使用状态时,状态文本将显示为“已配对”;的顺序即可轻松解决,具体的win10系统蓝牙已配对但未连接教程就在下文,一起来看看吧!

    蓝牙连接未启动的修复方法:

    1、蓝牙设备的状态文本在“设置” >“设备” >“蓝牙和其他设备” 中发生更改;

    2、蓝牙设备只有在设备真正处于使用状态时才显示为“已连接”(例如,处于连接状态并且正在播放音乐的蓝牙扬声器)。当设备未处于使用状态时,状态文本将显示为“已配对”;

    3、如果你的蓝牙设备未工作,则可以尝试删除该设备,然后重新配对。在“蓝牙”设置中,依次选择已配对但并未工作的蓝牙设备 >“删除设备” >“是” ,然后进行确认。在此之后,重新配对该设备即可!

    打开你的蓝牙音频设备并使其可发现,使其可发现的方式取决于设备。查看设备或访问制造商网站以了解操作方法.

    以上便是win10系统中蓝牙已配对但未连接的有效解决方法!

    展开全文
  • 很多小伙伴都遇到过win10系统显示蓝牙配对但未连接的情况,想必大家都遇到过win10系统显示蓝牙配对但未连接的情况吧,那么应该怎么处理win10系统显示蓝牙配对但未连接呢?我们依照在Windows10系统桌面,依次...
  • android 蓝牙连接配对

    千次阅读 2018-08-14 13:32:27
    前篇写的蓝牙数据传输,因为当时没要求就没写li连接配对,直接调用的已配对数据。 然后不出所料,测试版给出之后马上反馈回来,说要做连接配对功能,不然去设置里面弄太麻烦了.... 行吧,谁叫我想偷懒叻。然后就做...
  • 最近有win10系统用户反映说碰到这样一个情况,就是在使用蓝牙的时候,明明已经显示蓝牙配对了,但是却一直未连接,导致无法使用蓝牙功能,遇到这样的问题该如何处理呢?本文就给大家讲解一下Win10系统显示蓝牙已...
  • 很多的Win10用户都在使用蓝牙连接手机,一些网友在连接时出现win10系统蓝牙已配对但连接不成功,出现在这样的问题怎么解决呢?下面我们来看看Win10镜像官网给大家带来的解决方法。Win10蓝牙连接不成功的解决方法:...
  • 安全快捷,今天看到有小伙伴在使用蓝牙的时候初选了问题,系统显示蓝牙配对了的,但是一直不能成功连接的情况,遇到这个问题我们应该怎么解决呢,今天小编就来跟大家分享一下win10中系统显示蓝牙配对但未连接的...
  • 图文解读win10系统显示蓝牙配对但未连接的解决教程更新日期:2020-05-06 12:12:02 作者:win10蓝牙 来源:本站整理我们在操作win10系统电脑的时候,常常会遇到win10系统显示蓝牙配对但未连接的情况,想必大家都...
  • win10系统自带有蓝牙功能,但有时候会碰到一些情况,比如最近有用户在使用蓝牙的时候,系统显示蓝牙已经配对了,但一直不能成功连接,就此问题,接下来小编教你win10系统显示蓝牙配对但未连接失败如何解决吧。...
  • 同时为了保证使用的方便性,以配对的形式完成两个蓝牙设备之间的首次通讯,经配对之后,随后的通讯连接就不必每次都要做确认。所以码的产生是从配对开始的,经过配对,设备之间以PIN码建立约定的link
  • 虽然WiFi已经很普及了,并且速度也要比蓝牙快得多,但是蓝牙作为一种无需第三方设备参与的直连模式在应急临时连接时还是很有优势的。下面MS酋长就来演示一下Win10设置进行蓝牙配对的方法步骤: PS: 演示所用版本为...
  • 其实手机跟汽车蓝牙连接配对不成功怎么弄,下面就一起来看看苹果手机蓝牙配对不成功怎么解决,希望能够帮助到大家!蓝牙配对不成功怎么办一、知iPhone6plus蓝牙连接不上解决方法:蓝牙拒绝配对怎么办。1、在蓝牙设备...
  • 许多win10系统用户在工作中经常会遇到win10系统显示蓝牙配对但未连接的情况,想必大家都遇到过win10系统显示蓝牙配对但未连接的情况吧,那么应该怎么处理win10系统显示蓝牙配对但未连接呢?我们依照在Windows...
  • Android 蓝牙 自动配对连接

    千次阅读 2018-08-05 19:50:12
    最近在开发一个手机连接蓝牙设备的APP,其中有个需求是自动连接,用户不用确认。我在网上找到了一个工具类,但是网上很 多文章对这个工具类的使用方法都不能实现我的需求,要么弹出框不能隐藏,要么是隐藏输入框却...
  • Win10 2004(2020 年 5 月更新)重新启用了对蓝牙 A2DP 接收器功能的支持,该功能之前在Windows7中是被支持的,但微软...Win10电脑在启用蓝牙 A2DP 接收器后,使用蓝牙连接手机,手机里的音乐就可以使用电脑扬声器或耳...
  • * 蓝牙配对的回调接口 */ public interface IBtConnectCallBack { void onSucces(); void onFail(); } private BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter(); private ...
  • Android 蓝牙自动配对连接

    千次阅读 2018-03-20 09:49:33
    蓝牙工具类: public class BTReceiverUtils { /** * 与设备配对 */ static public boolean createBond(Class btClass, BluetoothDevice btDevice) throws Exception { Method createBondMethod = b...
  • android系统蓝牙自动配对连接

    千次阅读 2019-04-02 20:30:09
    蓝牙配对主要在settings应用下面的com.android.settings.bluetooth目录下,主要是有广播侦听BluetoothPairingRequest.java,配对对话框BluetoothPairingDialog.java,BluetoothPairingDialogFragment.java, ...
  • android手机蓝牙自动配对连接,互发消息示例

    千次下载 热门讨论 2012-08-27 09:00:27
    内含可直接附加的项目,一个说明文档,代码中注释齐全 程序功能: 1.一台手机运行程序后选择服务端,...PS:谁有蓝牙快速连接的例子(根据蓝牙波段进行连接,无需配对,直接连接,类似蓝牙耳机)请与作者联系,谢谢
  • 在之前的文章【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附Demo源码中,简单介绍和演示了经典蓝牙配对方式,今天就在之前的基础上继续讲讲,蓝牙配对、解除配对以及如何实现不弹出配对框。...
  • 同时为了保证使用的方便性,以配对的形式完成两个蓝牙设备之间的首次通讯认证,经配对之后,随后的通讯连接就不必每次都要做确认。所以认证码的产生是从配对开始的,经过配对,设备之间以PIN码建
  • 当你买了HHKB蓝牙版装上电池打开电脑连接蓝牙的时候,一开始肯定是这样的。遇到PIN码的时候。。emmm就不知所措了。。这什么码?键盘上没有啊。包装里也没有啊。立马百度一波解决方案是这样的- -emmm我第一次找到这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,666
精华内容 666
关键字:

蓝牙连接配对