diff --git a/AAP Definitions.md b/AAP Definitions.md index d9215af..9f1b2d7 100644 --- a/AAP Definitions.md +++ b/AAP Definitions.md @@ -240,6 +240,31 @@ For left bud 00 0080 3F ``` + + + + + + All values are formatted as Little Endian from float values. | Data | Type | Value range | |---------------------|---------------|-------------| diff --git a/android/app/src/main/java/me/kavishdevar/aln/utils/CrossDevice.kt b/android/app/src/main/java/me/kavishdevar/aln/utils/CrossDevice.kt index 597d44f..a7b20aa 100644 --- a/android/app/src/main/java/me/kavishdevar/aln/utils/CrossDevice.kt +++ b/android/app/src/main/java/me/kavishdevar/aln/utils/CrossDevice.kt @@ -45,7 +45,7 @@ object CrossDevice { @SuppressLint("MissingPermission") fun startServer() { - serverSocket = bluetoothAdapter.listenUsingRfcommWithServiceRecord("AirPodsSwitch", uuid) + serverSocket = bluetoothAdapter.listenUsingRfcommWithServiceRecord("ALNCrossDevice", uuid) Log.d("AirPodsQuickSwitchService", "Server started") CoroutineScope(Dispatchers.IO).launch { while (serverSocket != null) { diff --git a/libbluetooth_jni_juan.so b/libbluetooth_jni_juan.so new file mode 100644 index 0000000..999f3d0 Binary files /dev/null and b/libbluetooth_jni_juan.so differ diff --git a/linux/main.cpp b/linux/main.cpp index 2935a2e..fc6f1fe 100644 --- a/linux/main.cpp +++ b/linux/main.cpp @@ -322,6 +322,11 @@ public slots: socket->close(); socket = nullptr; } + if (phoneSocket && phoneSocket->isOpen()) { + QByteArray airpodsDisconnectedPacket = QByteArray::fromHex("00010000"); + phoneSocket->write(airpodsDisconnectedPacket); + LOG_DEBUG("AIRPODS_DISCONNECTED packet written: " << airpodsDisconnectedPacket.toHex()); + } } void connectToDevice(const QBluetoothDeviceInfo &device) {