首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

开发 | 手把手,教你调用小程序蓝牙接口

文 | 极乐叔 这两天,我试着在小程序中,调用蓝牙设备接口。 这个模块做了 2 周,找了很多资料文档,看示例看别人的 demo,最后发现还是得靠自己。...获取已配对的蓝牙设备 需要注意的是,参数 services(Array)是必填的,但是官方示例中以及各种坑爹 demo 里从没见过有谁填写。不填写这个属性此方法,将无法获取到任何已配对设备。...自动配对设备 在第 5 步中发现了某个想配对的设备,则获取到该设备的 deviceId,然后用 this.startConnectDevices() 接口,开始配对该设备。 ?...意外处理 如果扫描到的设备中没有想要连接的设备,可以尝试使用系统蓝牙手动配对,然后再小程序中调用 getConnectedBluetoothDevices() 获取本机已配对的蓝牙设备,然后过滤设备(可能获取多个已配对的蓝牙设备...3、经提醒,我发现还可以再完善一下在 onBlueToothAdapterStateChange() 监听蓝牙适配器状态,以此判断连接过程中、连接后用户开关了设备蓝牙。

2.3K30

Android BLE 蓝牙开发,连接蓝牙设备进行通讯

针对低功耗蓝牙通讯,Android 4.3(API 18)开始引入了 BLE 库。我们可以直接使用 Android SDK 中的蓝牙 BLE 库,而不用额外导入依赖库。...我们如果使用bluetoothAdapter.enable();时Android Studio出现代码错误警告,可以在该代码使用的方法中添加:@SuppressLint("MissingPermission...} 其实,我们只需要蓝牙状态的监听就可以了BluetoothAdapter.ACTION_STATE_CHANGED 其他的设备查找,配对。...在注册消息监听,都是使用UUID值是00002902-0000-1000-8000-00805f9b34fb进行的。这个是Android系统保留的。用于动态监听的。 你如果不想使用这个动态监听。...3.8 写数据到蓝牙设备中 我们如果想将内容推送到蓝牙设备中,在发现服务的时候onServicesDiscovered 遍历特性中,确保是用于写消息的特性对象后。

5.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    『教程』微信小程序--蓝牙连接开发总结

    代码展示 1、app.js的onLaunch() 方法里中调用开启连接 this.startConnect();弹出提示框,开启适配,如果失败提示设备蓝牙不可用,同时开启蓝牙适配器状态监听。...,可以尝试使用系统蓝牙手动配对,然后再小程序中调用getConnectedBluetoothDevices() 获取本机已配对的蓝牙设备,然后过滤设备(可能获取多个已配对的蓝牙设备)。...11、手动连接,上文介绍的方法是为了直接自动连接,如果不需要自动连接,可在使用方法getBluetoothDevices() 将会获取到已扫描到的蓝牙设备的列表,可以做个页面显示出设备名,点击该设备开始连接...注意: 1、that.serviceId 是在初始化时设置的,由于对需要连接设备的主服务serivceId和各种特征值都是已知的因此可以这样做。如果不可知可以做一个扫描方法自己检查特征值的用途。...3、经人提醒还可以再完善一下在onBlueToothAdapterStateChange()**可以监听蓝牙适配器状态,以此判断连接过程中或连接后用户开关了设备蓝牙,如果判断到关了蓝牙提示请开启,如果监听到开启了

    7.8K103

    蓝牙技术的工作原理是什么?

    由于不需要物理连接,蓝牙特别兴趣小组(SIG)为硬件制造商创建了无线技术标准,供他们在制造新设备时使用。随着技术的发展,无线通信技术也在发展。在撰写本文时,开发人员使用两种蓝牙技术标准来保持连接。...蓝牙技术甚至能了解哪些无线电信道工作良好,哪些正在受到干扰,以便它能够动态地避开不良信道,只使用没有干扰的信道。这个过程称为自适应跳频,即使在有大量无线设备运行的环境中,也能让蓝牙设备很好地工作。...蓝牙技术包含许多安全措施,甚至可以满足最严格的安全要求,例如联邦信息处理标准(FIPS)中的要求。 在设置新设备时,用户通常会经历一个称为配对的过程。配对为每个设备配备特殊的安全密钥,使它们相互信任。...例如,如果你购买一个无线鼠标,第一次打开它时,你会将它与计划使用的设备进行配对。你可能会打开鼠标,然后在电脑的蓝牙设置中看到附近蓝牙配件列表中的鼠标名称后进行配对。...你从娱乐显示屏输入代码以确认这是一个授权的配对。之后,你就可以使用免提电话系统,而无需再次配对。 用户还可以控制设备对其他蓝牙设备的可见性。

    19210

    Android4.42-Settings源码分析之蓝牙模块Bluetooth整体实现(总)

    中创建switch实例,在BluetoothEnabler.java中对switch的状态监听及更新,查看代码不难发现BluetoothEnabler.java类中是专门对switch进行处理的类。...中监听对话框中的编辑框,如果被编辑就修改本地蓝牙的名称,该类专用于为本机蓝牙重命名, mLocalAdapter.setName(); 在当前的activity弹出对话框消失后程序不会执行onResume...,如果本地蓝牙既可以扫描又可以被检测到即处于SCAN_MODE_CONNECTABLE_DISCOVERABLE状态时,则根据可检测性时间的长短来显示,显示内容为:附近所有设备可以检测到+timeout...中对列表进行管理 获取到设备缓存列表,该列表中存放已配对设设备和未配对设备,在程序安装成功后会通过BluetoothAdapter的getBondedDevices方法读取到已配对设备保存到缓存列表中...; 扫描到设备后缓存到缓存列表,然后显示到附近可用设备列表 若附近可用设备列表为空,则移除 设备的点击事件在BluetoothDevicePreference中处理,设备状态不同则动作不同:如果是已配对设备则点击后就进行连接

    53410

    【Android 应用开发】BluetoothAdapter解析

    , 例如 : 启动设备发现(startDiscovery), 获取已配对设备(getBoundedDevices), 通过mac蓝牙地址获取蓝牙设备(getRemoteDevice), 从其它设备创建一个监听连接..., 该权限用来管理蓝牙设备, 有了这个权限, 应用才能使用本机的蓝牙设备, 主要用于对配对前的操作; 优先级 : BLUETOOTH权限是BLUETOOTH_ADMIN权限的前提, 如果没有BLUETOOTH..., 值为21, 查询扫描失效, 页面扫描有效, 该状态下蓝牙模块可以扫描其它设备, 从可见性来说只对已配对的蓝牙设备可见, 只有配对的设备才能主动连接本设备; 可见状态 : int SCAN_MODE_CONNECTABLE_DISCOVERABLE...", 默认的可见时间为120s, 可以在广播中添加附加域, 设置任意的可见时间, 附加域为EXTRA_DISCOVERABLE_DURATION, 需要BLUETOOTH权限; 可以在Activity中的..., 同时已连接的设备的带宽也会被压缩, 等待时间变长; 使用cancelDiscovery()可以终止搜索; 返回值 : 如果成功则返回true, 失败返回false; 权限 :  BLUETOOTH_ADMIN

    2.2K40

    多系统共享蓝牙设备

    简介 当我们在一台电脑上安装了多个操作系统,且电脑只有一个蓝牙适配器时,如果此时使用蓝牙设备(比如蓝牙鼠标),且希望切换系统时能自动连接,则会发现问题: 如果在当前系统配对后,然后跑到另一个系统下配对,...原理 蓝牙适配器、蓝牙设备在实际通信过程中,都是靠其唯一的 MAC 地址来匹配的。当系统和蓝牙设备配对时: 系统会保留蓝牙设备的 MAC 地址和配对 Key。...蓝牙设备也会保留系统的蓝牙适配器的 MAC 地址和配对 Key。...因为蓝牙设备是根据 MAC 地址来标识不同的蓝牙适配器的,同一 MAC 地址的蓝牙适配器在蓝牙设备里只会有一个配对 Key。.../var/lib/bluetooth/[bth ada MAC] 中,这样其他 Linux 系统都不需要事先和蓝牙设备进行配对就能使用蓝牙设备。

    2.7K30

    Android 蓝牙开发(1)

    基础知识 使用 Android Bluetooth API 来完成使用蓝牙进行通信的四项主要任务:设置蓝牙、查找局部区域内的配对设备或可用设备、连接设备,以及在设备之间传输数据。...在首次与远程设备建立连接后,将会自动向用户显示配对请求。设备完成配对后,将会保存关于该设备的基本信息(如 设备名称、MAC 地址)。并且可以使用 Bluetooth API 读取这些信息。...在连接之前如果两个设备没有配对,则系统会自动发出配对请求 连接为服务器 当连接两台设备时,其中一台必须保持开发的 BluetoothServerSocket 来充当服务器,用于监听传入的连接请求,在接受了请求后提供一个已经连接的...系统会自定将其写入到设备上的新服务发现协议(SDP)数据库条目中。UUID 也在 SDP 中,作为与客户端设备连接协议的匹配规则。...在 onServiceConnected() 中获取配置文件代理对象的句柄。 获取配置文件代理对象后,可以里脊将其用于监听连接状态和执行其他与该配置文件相关的操作。

    2.5K01

    Android4.42-Settings源码分析之蓝牙模块Bluetooth(上)

    还加入了关于蓝牙的两个权限,BLUETOOTH和BLUETOOTH_ADMIN,前者用于允许与已经配对的蓝牙设备进行连接主要是配对后的权限,后者用于允许发现和配对蓝牙设备,主要是配对前的权限。...进入到BluetoothEnabler.java类中可以发现,在该类的resume方法中对该switch有一个设置 其中handleStateChanged方法就是传入当前蓝牙的状态,并对开关的状态进行设置...所以如果你想修改蓝牙默认开关可以在framework/base/packages/SettingsProvider/res/values/default.xml中修改对应字段。...圈2:ActionBar底部栏,可进行蓝牙设备的搜索,检测时间,已配对设备列表等一些除了配对之外的设置,Actionbar的相关布局在onCreateOptionsMenu方法中,利用如下代码可自定义actionbar...4:本机蓝牙设备的相关设置,包括本机蓝牙名称,蓝牙对附近可用设备的可见性,蓝牙对已经配对设备的可见性,当检测到蓝牙开启时会添加一个本机蓝牙信息的Preference,在方法updateContent中完成添加或者移除

    1.6K20

    Android4.42-Setting源码分析之蓝牙模块Bluetooth(下)

    ,在扫描附近可用设备时会对缓存中的数据进行增加或者删除,并将数据显示在可用设备列表mAvailableDevicesCategory,并且程序会实时监听远程设备的状态变化,进行对设备列表的增加或删除。...监听广播的代码在BluetoothEventManager.java中。...iii>,设备列表的改变 当设备状态发生变化时设备列表的显示也要发生变化,诸如设备进行配对,取消配对等操作,在BluetoothEvenManager.java中对设备的状态进行监听并处理,在该类的构造方法中注册了许多的监听器...,监听蓝牙相关的变化,比如蓝牙状态改变ACTION_STATE_CHANGED等等,有需要的可以看下。..., //如果可以配对就把远程蓝牙设备的配对状态设置为正在配对  if (!

    96130

    【Android 应用开发】Android之Bluetooth编程

    使用静态注册,Debug运行,就是没进到onReceive()方法那里去。我用真机调试的。 但是使用动态注册,又可以捕捉到。我想问,这个系统广播可不可以静态注册?如果可以为什么会捕捉不到呢?...这有点不同于其他的action,你只有在Service中通过动态注册去监听这个事件。...android也应该不鼓励我们在后台监听这两个事件。...BluetoothDevice这个类要用源码里的替换下 蓝牙设备是怎么连接的  最前提的条件是有蓝牙的MAC地址; String macAddress; 根据蓝牙的MAC地址 , 可以获得蓝牙设备BluetoothDevice...大多数应用程序必须具有这个权限才能够发现本地蓝牙设备,这个权限保护的其他能力(除了发现本地设备)不应该被使用,除非你的应用程序是在用户请求的时候能够修改蓝牙设置的管理者。

    46330

    Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙的区别

    Android中的蓝牙 说到Android中的蓝牙,大家听到的可能有蓝牙1.0、蓝牙2.0、蓝牙3.0、蓝牙4.0之类的以数字结尾的蓝牙版本号,而实际上,在最新的标准中,已经不再使用数字版本号作为蓝牙版本的区分了...不过,两者在总体上的流程却也是相似的,那就是: 发现设备->配对/绑定设备->建立连接->数据通信 经典蓝牙和低功耗蓝牙除了配对/绑定这个环节是一样的之外,其它三个环节都是不同的。 1....然而实验发现 BluetoothAdapter.startDiscovery是可以同时发现经典蓝牙和ble的 低功耗蓝牙:低功耗蓝牙中则有一个主设备(Central)和从设备(Peripheral,也叫外围设备...——蓝牙小知识—— 在蓝牙设备中,存在着物理地址,我们也叫作蓝牙的MAC地址,这个地址是唯一的,就像咱们网络上的IP地址。同时还存在着一个叫做UUID的东西,可以把它理解为是IP地址中的端口号。...很多智能电视配的遥控器带有语音识别,需要用经典蓝牙才能传输声音 传大数据量的,用经典蓝牙: 如某些工控场景,使用Android或Linux主控,外挂蓝牙遥控设备的,可以使用经典蓝牙里的SPP协议

    4.9K21

    Android蓝牙配对弹出框过程分析 Android蓝牙配对弹出框过程分析

    Android蓝牙配对弹出框过程分析 根据远程蓝牙设备(remote devices)的要求,手机端发起与远程蓝牙设备Bluetooth remote Device的配对有两种情况 第一种:配对时需要...(数值为5),蓝牙2.0配对过程中,在本机输入显示在远程设备上的pin码:  enter the PIN displayed on remote device 则表示远程设备(remote device...码(create bond)没有配对请求(对应的设备有scp960,蓝牙耳机等),此时远程设备不需要鉴权,可以直接使用(just works) 所对应的action为:BluetoothDevice.ACTION_BOND_STATE_CHANGED...pairingkey配对码(属于蓝牙2.0和2.1时的处理) passkey/pin confirmmation无需输入密码只需确认型:这种情况配对时也会请求远程设备,远程会提供一个配对码并且通知给用户...,此时代码中可以获取到pairingkey配对码,严格来说是用户需要查看远程设备上显示的配对码与当前手机上显示的配对码是否一致,进行比较(compare)确认后配对,所以属于确认型,对应于上述type的第一种类型

    5.9K90

    Android蓝牙配对弹出框过程分析

    根据远程蓝牙设备(remote devices)的要求,手机端发起与远程蓝牙设备Bluetooth remote Device的配对有两种情况 第一种:配对时需要pin码(pin request...(数值为5),蓝牙2.0配对过程中,在本机输入显示在远程设备上的pin码: enter the PIN displayed on remote device 则表示远程设备(remote device...码(create bond)没有配对请求(对应的设备有scp960,蓝牙耳机等),此时远程设备不需要鉴权,可以直接使用(just works) 所对应的action为:BluetoothDevice.ACTION_BOND_STATE_CHANGED...pairingkey配对码(属于蓝牙2.0和2.1时的处理) passkey/pin confirmmation无需输入密码只需确认型:这种情况配对时也会请求远程设备,远程会提供一个配对码并且通知给用户...,此时代码中可以获取到pairingkey配对码,严格来说是用户需要查看远程设备上显示的配对码与当前手机上显示的配对码是否一致,进行比较(compare)确认后配对,所以属于确认型,对应于上述type的第一种类型

    3K20

    米家温湿度计刷入定制固件解锁隐藏功能

    如果是 Linux 系统下,需要使用 Chrome 并打开 chrome://flags/#enable-experimental-web-platform-features 这个开关并重启电脑后才能继续下一步...2.刷入固件 点击网页上的 Connect 按钮,在浏览器弹出的蓝牙设备选择框中点选正确的设备,最后点击配对。...也可以点击 Get Config 来下载当前设置值,或者使用 Set default 来恢复默认设置。...当然你也可以在页面上选择下载所有的温湿度数据到本地保存。 由于定制固件默认开启了蓝牙广播温湿度数据的功能,耗电量相比原厂固件可能会略微增加。不过比起蓝牙连接的方式,蓝牙广播消耗的电量会更少。...有关如何监听并保存蓝牙广播数据的教程,会放在下一篇文章中。 相关项目:https://github.com/pvvx/ATC_MiThermometer

    8.1K30

    蓝牙API介绍及基本功能实现

    本文已授权微信公众号>独家发布 ONE,传统蓝牙 BluetoothAdapter:本地蓝牙设备适配器,用于管理蓝牙的开启/关闭、重命名、扫描、配对、连接 BluetoothClass...();//获取本机蓝牙状态 通过监听BluetoothAdapter.ACTION_STATE_CHANGED监听蓝牙状态的改变 蓝牙重命名/获取本机蓝牙名 mAdapter.setName(name...,可以任意规定可检测时长,甚至永不超时均可(参考Android4.42源码) /** *mode有三种取值 *BluetoothAdapter.SCAN_MODE_CONNECTABLE:对已配对设备可见...(); 开启扫描/关闭扫描 adapter.startDiscovery();//开启蓝牙扫描功能 adapter.cancelDiscovery();//关闭蓝牙扫描功能 在扫描到设备时系统会发送...BluetoothDevice.ACTION_FOUND的广播,通过监听该广播可以获取到设备信息 获取到设备后调用如下方式进行连接 BluetoothSocket _BluetoothSocket =

    1.5K10

    大量蓝牙设备和系统将受加密漏洞CVE-2018-5383 影响

    近期,安全研究专家在某些蓝牙设备中发现了一个高危加密漏洞(CVE-2018-5383),未经验证的攻击者在物理接近目标设备后,这个漏洞将允许他们拦截、监控或篡改设备的网络数据。...这个蓝牙漏洞编号为CVE-2018-5383,受影响的包括苹果、博通、英特尔和高通等大型厂商所生产的设备固件以及操作系统软件驱动器,另外该漏洞是否会影响Android和Linux设备,目前还是未知数。...该漏洞主要会影响两种蓝牙功能,第一个是操作系统软件中用于安全连接配对的低功耗蓝牙(LE)实现,第二个是设备固件中用于安全简单配对的BR/EDR实现。 蓝牙攻击如何实现?...来自以色列理工学院的研究人员表示,虽然标准化组织规定有相关的蓝牙实现标准建议,但是标准并不强制让两台特征设备在配对过程中对公共加密密钥进行验证。...在这种情况下,攻击者就可以在目标设备的配对期间发起中间人攻击,并获取到设备所使用的加密密钥,这样一来他们将能够窃取或篡改设备间的加密通信数据了,甚至是利用恶意软件感染参与通信的目标设备。 ?

    69340
    领券