2 coolsssss coolsssss 于 2016.02.25 09:55 提问

Android 蓝牙ble配对 发送PIN码无效问题

在做蓝牙配对时,发现调用setPin函数发送PIN码,如123456时,蓝牙设备那边一直显示PIN错误。
我试过了无论是字符串的123456,还是数字123456都不行,但是使用全0的PIN可以配对成功,请大神指教。。

 byte[] pin = (byte[]) BluetoothDevice.class.getMethod("convertPinToBytes", String.class).invoke(BluetoothDevice.class, "123456");
  Log.i("pair", Arrays.toString(pin));
  boolean flag = device.setPin(pin);

4个回答

u010494578
u010494578   2016.02.25 10:03

配对码不是自己乱定的,一般的手机配对码是0000或者1234

u010494578
u010494578   2016.02.25 10:05

private static final Method _setPin = getMethod(BluetoothDevice.class, "setPin", new Class[] { byte[].class });
public boolean setPin(byte[] pin) throws Exception {
if (_setPin == null)
throw new NoSuchMethodException("setPin");

    try {
        return (Boolean)_setPin.invoke(mDevice, pin);
    } catch (InvocationTargetException tex) {
        if (tex.getCause() instanceof Exception)
            throw (Exception)tex.getCause();
        else
            throw tex;
    }
}
希望对你有帮助
u010494578
u010494578 回复松鼠小白: 嵌入式工程师给设备设置什么pin码,android端设置配对时就使用什么pin码。另外需要特别关注的是:android里利用反射机制去设置pin码这个方法并不是百分之百可靠
2 年多之前 回复
coolsssss
coolsssss 嵌入式那边把PIN码改成“000000”后,我这边发送“000000”就可以配对了。但是用其它的PIN码就不可以,请问是为啥啊?
2 年多之前 回复
coolsssss
coolsssss 那个PIN码是嵌入式工程师设置的,现在是发送“123456”的PIN码配对不了,请问是不是对发送的PIN码有什么格式要求啊?
2 年多之前 回复
luochoudan
luochoudan   Ds   Rxr 2016.02.25 11:50

没有格式要求,就是6位数字,建议两遍都找找原因。

zrf1335348191
zrf1335348191   2016.02.25 13:07

设备端pin码两个选择0000或1234

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android蓝牙自动配对和Pin码设置
前言(android2.3版本,4.0版本由于是随机获取pin值,没有研究过): 1、蓝牙设备之间自动配对,需要两个设备都安装进行配对的apk(网上好多自动配对的帖子都没有说明情况) 2、在自动匹配的时候想通过反射调用BluetoothDevice的setPin、createBond、cancelPairingUserInput实现设置密钥、配对请求创建、取消密钥信息输入等。 1)creat
求大神,Android4.4 自动连接蓝牙Ble不弹出输入PIN码的窗口解决办法?
网上找到的都是以前的蓝牙自动连接 ,利用一个class ClsUtils 参考:http://blog.csdn.net/jilong17/article/details/7928628  ,类似的我也试了哈,也许是不会用,总有弹窗出来,各位大神有办法吗?  求demo,
安卓蓝牙自动PIN码匹配代码
安卓蓝牙自动PIN码匹配代码 对符合自己要的设备名称自动匹配PIN码,无需人工输入PIN码
Android蓝牙配对
Android ble4.0自动配对
Android 蓝牙自动匹配PIN码跳过用户交互
近期项目中需要连接蓝牙设备,起初只是设置蓝牙列表界面让用户点击然后输入默认PIN码,后来改需求了 = = ,要求自动连接指定设备并不需要用户手动输入PIN码,作为Android 小白的我是拒绝的,但是拒绝有什么用~ 首先说一下之后会用到的关于蓝牙方面的东西: 断开蓝牙已配对的设备搜索附近蓝牙设备拦截用户交互页面,使用代码输入由于在最后连接的时候使用的是设备的SDK所以在这里就不介绍了
Android蓝牙实现自动配对,无需输入密码
在项目开发中,需要连接一个蓝牙设备,实现自动配对,经过尝试和分析Android源码,最终问题得以解决: 网上较为流行的ClsUtils工具类并不能满足我的要求, (1)首先分析一下ClsUtils工具类,通过接受Action为android.bluetooth.device.action.PAIRING_REQUEST的广播,并且在接到广播后,调用一下方法实现自动配对 ClsUtils.se
【BLE】CC2541之配对密码的读取与修改
本文以SimpleBLEPeripheral工程为例,介绍如何用指令进行读取、修改配对密码
蓝牙绕过系统Pin弹窗自动匹配,亲测4.0以上没问题
今天做一个功能,APP连接蓝牙打印机,但是每次连接都要弹一个系统弹窗输入Pin,很不爽,一般Pin都是0000或者1234,所以想能不能让程序去自动输入匹配呢?随后Google了一大堆出来,基本都是以前的代码,我就从网上一个通用的工具类,做了一些修改经过边测边改一整天,基本上实现了这个功能,大部分情况下Pin窗会一闪而过,但是也偶尔会弹出来,或者连接上之后等一段时间会弹出来,这样子,希望能和大家讨
Android 蓝牙4.0实现,自动匹配蓝牙设备
今天开始写博客来记录我的工作学习成长,作为一个初学者,近期的一个工作是通过Android蓝牙4.0来实现与蓝牙设备的数据交换,下面就通过代码和文字来解释一下整个过程。         首先我要说明的是,我再项目中使用了一个开源库,我觉得不错,所有代码都是在该库基础上实现的,地址:https://github.com/litesuits/android-lite-bluetoothLE 下面进入
android ble 4.0实现自动配对
这几天在开发与蓝牙4.0Ble的通讯,因需求要求android必须能过自动与蓝牙配对。于是就开始上网找资料,查出来最多的就是说是用 ClsUtils 这个类,说利用反射调用封起来的方法,我直接copy 拿来使用,但是不管用。发现setPin 与 cancelPairingUserInput 一起调用就会失败,ok! 废话少说,直接进入主题:         1. IntentFilter