Android蓝牙连接安全不安全

Android蓝牙连接安全不安全,第1张

概述我一直在玩 Android 2.2的蓝牙API(API级别8,HTC Desire),并且有一个应用程序连接到嵌入式蓝牙设备使用: device.createRfcommSocketToServiceRecord(DEV_UUID); 这产生了一个预期的配对请求,但是为了简化连接过程,我希望在配对转移到API级别10(HTC Desire with CyanogenMod 7)时避免用户交互,所以 我一直在玩 Android 2.2的蓝牙API(API级别8,HTC Desire),并且有一个应用程序连接到嵌入式蓝牙设备使用:

device.createRfcommSocketToServiceRecord(DEV_UUID);

这产生了一个预期的配对请求,但是为了简化连接过程,我希望在配对转移到API级别10(HTC Desire with CyanogenMod 7)时避免用户交互,所以我可以使用:

device.createInsecureRfcommSocketToServiceRecord(DEV_UUID);

在测试时,这也可以按预期工作(连接时不会提示用户配对),但是当我尝试在API级别10下创建安全的RfcommSocket时,如前所述2.2我得到连接拒绝异常…

java.io.IOException: Connection refused    at androID.bluetooth.BluetoothSocket.connectNative(Native Method)    at androID.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:204)

据我所知,这应该仍然以相同的方式工作,提示用户配对?

编辑:

刚刚尝试使用以下代码并且结果是相同的(为不安全工作而不是为了安全),我将尝试让我的手上的2.3库设备进行测试.

try {            Method m = dev.getClass().getmethod("createInsecureRfcommSocketToServiceRecord",new Class[] { UUID.class } );            BluetoothSocket bs = (BluetoothSocket)m.invoke(dev,devUUID);            Log.d("TEST","Method Invoked");            bs.connect();            Log.d("TEST","Connected to socket");            bs.close();            Log.d("TEST","Closed Socket");        }
解决方法 在我的应用中寻找类似问题的解决方案时,我在code.Google.com上找到了这个博客

它将帮助所有仍在寻找此问题解决方案的人

http://mobisocial.stanford.edu/news/2011/03/bluetooth-reflection-and-legacy-nfc/(链接不再工作)

解决方案现在变得非常简单.只需在项目中包含InsecureBluetooth.java,然后在BluetoothChatService.java中更改2行.

tmp = InsecureBluetooth.ListenUsingRfcommWithServiceRecord(mAdapter,name,MY_UUID,true);

tmp   = InsecureBluetooth.createRfcommSocketToServiceRecord(device,true);

而已 !

总结

以上是内存溢出为你收集整理的Android蓝牙连接安全不安全全部内容,希望文章能够帮你解决Android蓝牙连接安全不安全所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1128462.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存