Android 蓝牙连接安全不安全

2023-12-22

我一直在研究 Android 2.2 的蓝牙 API(API 级别 8,HTC Desire),并且有一个应用程序使用以下方式连接到嵌入式蓝牙设备:

device.createRfcommSocketToServiceRecord(DEV_UUID);

这按预期生成了一个配对请求,但是为了简化连接过程,我想避免配对时的用户交互,因此移至 API 级别 10(带有 CyanogenMod 7 的 HTC Desire),以便我可以使用:

 device.createInsecureRfcommSocketToServiceRecord(DEV_UUID);

测试时这也按预期工作(连接时不提示用户配对),但是当我尝试像以前那样在 2.2 中创建 API 级别 10 下的安全 RfcommSocket 时,出现连接拒绝异常...

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

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

EDIT:

只是使用以下代码再次尝试,结果是相同的(适用于不安全但不适用于安全),我将尝试使用库存 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/ 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);

and

tmp   = InsecureBluetooth.createRfcommSocketToServiceRecord(device, MY_UUID, true);

就是这样 !

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 蓝牙连接安全不安全 的相关文章

  • 我用 MediaRecorder 录制的文件无法播放

    我正在使用 MediaRecoder 录制声音 但录制完成后无法播放 我尝试使用Google Play Music ES Media Player 甚至将其上传到电脑并尝试使用Winamp打开它 没什么玩的了 AUDIO RECORDER
  • 以 Gif 形式在 Android 上以编程方式共享 WhatsApp 视频

    我如何将 mp4 视频文件转换为 WhatsApp gif 文件 在应用程序 UI 中简单显示为 gif 但内部是特定的 mp4 格式 以在 android 共享意图中使用 并被 Whatsapp 聊天应用程序识别为此类媒体 我搜索了很多
  • 如何为整个 Android 应用程序设置默认字体系列

    我在我的应用程序中使用 Roboto 浅色字体 要设置字体 我必须添加android fontFamily sans serif light 到每一个视图 有没有办法将 Roboto 字体声明为整个应用程序的默认字体系列 我已经尝试过这样的
  • 使用服务时应用程序终止时音乐暂停

    我正在使用一个Service类在后台播放音乐 当我在顶部显示通知栏时 我的应用程序出现问题 当我终止该应用程序时 音乐停止约 1 秒 然后再次开始 我不知道出了什么问题 我正在关注this https www simplifiedcodin
  • 如何更改我的应用程序的语言[重复]

    这个问题在这里已经有答案了 可能的重复 在 Android 中以编程方式更改语言 https stackoverflow com questions 2900023 change language programatically in an
  • EditText - 在键入时更改文本

    我需要在输入时替换 EditText 内的文本 示例 如果用户按下 A 它将被存储到缓冲区中 并在 EditText 上显示 D 看起来像是按下了 D 现在我可以读取按下的字符 但无法显示 et 中的任何字符以避免 stackoverflo
  • Android 两个日期之间的差异

    我有两个约会 例如 String date 1 yyyyMMddHHmmss String date 2 yyyyMMddHHmmss 我想打印差异 例如 2d 3h 45m 我怎样才能做到这一点 谢谢 DateTimeUtils obj
  • Android Volley 服务器错误

    I am posting data all strings to varchar variables in server but i am getting volley server error or badnetwork performa
  • 具有待处理意图的警报管理器

    下面的代码片段 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout main Do
  • Android 设备上的 Facebook 分享问题

    我使用了来自的样本AndroidFacebook示例 https github com ddewaele AndroidFacebookSample它在模拟器上运行良好 但在设备上它被转移到内置的 Facebook 意图 设备上不会出现身份
  • 在发布我的应用程序之前在 play.google 上获取我的应用程序的链接

    我想使用 facebook api 分享我的应用程序的链接 play google 上的链接 但在将应用程序发布到市场之前我必须拥有它才能将其放入我的代码中 除了发布后立即更新我的应用程序之外 还有其他解决方案吗 用这个 https pla
  • 解析 android-21 的数据失败,不支持major.minor 版本 51.0

    安装 Android 5 0 SDK 21 后在 Eclipse 中出现以下错误 Loading data for Android 5 0 has encountered a problem Parsing Data for android
  • 索尼 SmartWatch 2 定制表盘自固件更新后损坏

    我知道这将是这个的重复 gt SW2 更新后如何修复 Sony SmartWatch 2 上的自定义表盘时间 https stackoverflow com questions 27536415 how to fix custom watc
  • Robolectric 3.0 不适用于 AppCompat 21+

    升级到 AppCompat 21 后 我们的许多 Robolectric 测试都失败了 Toolbar 和 AppCompatDelegate 似乎存在问题 我尝试了 support v4 appcompat 22 2 1 和 appcom
  • Android 视频循环缓冲区与声音

    我正在使用谷歌的开源示例 Grafika https github com google grafika 我正在使用它ContinuousCaptureActivity java https github com google grafik
  • 如何根据另一个动态下拉列表的值创建动态下拉列表?

    我有一个下拉菜单 当我选择一个选项时 它会创建一个动态下拉菜单 到目前为止 一切都很好 但我想创建另一个动态下拉列表 现在基于另一个动态下拉列表的值 我该怎么做 第一个动态下拉列表有效 我猜第二个无效 因为动态变量 div 没有静态 ID
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • 如何检测屏幕何时关闭?

    是否可以检测屏幕何时关闭并捕获它 我想在 Android 的全局设置中将计时器设置为 15 秒 我正在尝试查找一些如何捕获唤醒锁定模式的信息 只需注册您的应用程序即可执行操作Intent ACTION SCREEN OFF https de
  • 使用 Android 2.x 进行实时音频流传输

    我需要在 2 x 及更高版本的设备上播放直播 This http developer android com guide appendix media formats html声明不可能在 Android 2 x 的设备上播放直播 我在这里
  • 如何从下到上连续移动图像?

    我一直在研究这个例子http obviam net index php a very basic the game loop for android http obviam net index php a very basic the ga

随机推荐