gpt4 book ai didi

android - 蓝牙忘记密码

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:52 27 4
gpt4 key购买 nike

所以我正在开发一个连接到嵌入式蓝牙设备的应用程序。该设备推出了不同的版本,在我的测试设备上,一切正常。通过安全的 rfcomm 套接字进行通信。然而,另一组设备让我毛骨悚然。他们有点失去边界状态。虽然它们被标记为已配对,但每次我建立连接时,都会要求我重新输入 PIN 码。这确实是不希望的。此外,此行为不会发生在所有设备上,但会发生在大多数设备上。实际上,唯一不会忘记 PIN 的设备是 Galaxy Nexus S。三星 Galaxy Nexus、ACE、GIO 和 X10 mini Pro 往往会“忘记”之前配对过的设备。使用 API lvl 10,我已经尝试过不安全的 RFCOMM 连接,但没有成功。我在这里迷路了。有人有想法吗?

最好的问候!

最佳答案

您设备的 getBTMajorDeviceClass 是什么?如果是BluetoothClass.Device.Major.UNCATEGORIZED,尝试生成自己的UUID:

private UUID generateUuid() {
String android_id = Secure.getString(getApplicationContext()
.getContentResolver(), Secure.ANDROID_ID);
Log.i("System out", "android_id : " + android_id);

final TelephonyManager tm = (TelephonyManager) getBaseContext()
.getSystemService(Context.TELEPHONY_SERVICE);

final String tmDevice, tmSerial, androidId;
tmDevice = "" + tm.getDeviceId();
Log.i("System out", "tmDevice : " + tmDevice);
tmSerial = "" + tm.getSimSerialNumber();
Log.i("System out", "tmSerial : " + tmSerial);
androidId = ""
+ android.provider.Settings.Secure.getString(
getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);

UUID deviceUuid = new UUID(androidId.hashCode(),
((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());

return deviceUuid;
}

并在创建套接字时使用它 createRfcommSocketToServiceRecord(generateUuid());

*需要 READ_PHONE_STATE

关于android - 蓝牙忘记密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15362752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com