From 1baa8f7baa336ce7e78d4b8389a351526cb8c673 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期三, 25 十一月 2020 15:10:39 +0800 Subject: [PATCH] 蓝牙密码 --- lib/src/main/java/com/anyun/exam/lib/util/Bluetooth.java | 28 +++++++++++++++++++++++++--- 1 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/src/main/java/com/anyun/exam/lib/util/Bluetooth.java b/lib/src/main/java/com/anyun/exam/lib/util/Bluetooth.java index 91b66b1..eb40b1a 100644 --- a/lib/src/main/java/com/anyun/exam/lib/util/Bluetooth.java +++ b/lib/src/main/java/com/anyun/exam/lib/util/Bluetooth.java @@ -15,13 +15,13 @@ public class Bluetooth extends BroadcastReceiver { private static final String TAG = Bluetooth.class.getCanonicalName(); - public static final String DEFAULT_BT_PASSWORD = "0000"; + public static final String DEFAULT_BT_PASSWORD = "1111"; private static Bluetooth instance = null; private Context context; private BluetoothAdapter mBtAdapter = null; private Handler mHandler; - private String pin = DEFAULT_BT_PASSWORD; + private String pin = null; private String mName = null; public static Bluetooth getInstance(Context context, Handler handler) { @@ -46,6 +46,9 @@ filter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED); filter.addAction(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED); filter.addAction("android.bluetooth.device.action.PAIRING_REQUEST"); + + filter.setPriority(1000); + context.registerReceiver(this, filter); } @@ -129,6 +132,25 @@ Log.d(TAG, "鍖归厤璇锋眰"); // Get the BluetoothDevice object from the Intent BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + + String name = device.getName(); + + if (pin == null && name != null && name.contains("AKS3A_") && name.length() >= 8) { + char [] sn = new char[8]; + name.getChars(name.length() - 8, name.length(), sn, 0); + int a = ((sn[0] - '0') * 10 + sn[1] - '0') * 100 + (sn[2] - '0') * 10 + sn[3] - '0'; + int b = ((sn[4] - '0') * 10 + sn[5] - '0') * 100 + (sn[6] - '0') * 10 + sn[7] - '0'; + + a = (a * b * 1978) % 10000; + + pin = String.format("%02d", a/100) + String.format("%02d", a%100); + } + + if (pin == null) { + pin = DEFAULT_BT_PASSWORD; + } + + Log.d(TAG, "鍖归厤鍚� " + pin); /*if (device.getName().equals(BLUETOOTH_OBD_NAME) || device.getName().equals(BLUETOOTH_TARGET2_NAME)) */{ try { ClsUtils.setPairingConfirmation(device.getClass(), device, true); @@ -139,7 +161,7 @@ ClsUtils.setPin(device.getClass(), device, pin); } catch (Exception e) { - e.printStackTrace(); + Log.e(TAG, e.getMessage()); } } } else if (BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED.equals(action)) { -- Gitblit v1.8.0