bluetooth.connect with autoDiscoverAll hangs on iOS for BT Assigned Numbers
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- typescript
- Ambito
- mobile-dev
Direzione di ricerca
Inizia in src/bluetooth.ios.ts, in discoverCharacteristics, quindi segui come il decoratore prepareArgs modifica args.serviceUUID. Riproduci il caso Assigned Numbers con autoDiscoverAll abilitato e verifica che il confronto degli UUID completi la discovery e invochi onConnected invece di lasciare la promise irrisolta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm investigating an issue where bluetooth.connect() fails to resolve the promise when a serviceUUID falls under the Bluetooth Assigned Numbers list:
- BT specification: https://www.bluetooth.com/specifications/assigned-numbers/
my project versions:
{
"@nativescript/core": "^8.4.1",
"@nativescript-community/ble": "^3.1.11",
}
the call to bluetooth.connect():
await this.bluetooth.connect({
UUID: deviceUuid,
// autoDiscoverAll causes the hang... but only for those Assigned Number serviceUUIDs (link above)
autoDiscoverAll: true,
onConnected: (peripheral) => {
// the onConnected() callback is never called...
},
onDisconnected: function (peripheral) {
// onDisconnected IS called, on disconnect
}
});
I have tracked the problem down to:
https://github.com/nativescript-community/ble/blob/master/src/bluetooth.ios.ts#L1643-L1644
@bluetoothEnabled
@prepareArgs
public discoverCharacteristics(args: DiscoverCharacteristicsOptions) {
// ...
const sUUID = CBUUIDToString(service.UUID);
if (UUID === pUUID && sUUID === args.serviceUUID) {
// ...
}
// ...
}
the issue is the following comparison fails:
# "0000181a-0000-1000-8000-00805f9b34fb" == "181a"
sUUID === args.serviceUUID
args.serviceUUID is being be modified by the decorator prepareArgs() to a "Short UUID", if the service's UUID matches a Bluetooth Assigned Number of the form
const pattern = /0000(.{4})-0000-1000-8000-00805f9b34fb/;
however, sUUID returned by CBUUIDToString(service.UUID) is a "Long UUID"
Long vs Short UUIDs:
I'll work on a fix and submit a PR today hopefully...
- Lingua principale
- TypeScript
- Stelle
- 202
- Fork
- 79
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nativescript-community/ble
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
nativescript-community/ble#282 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
nativescript-community/ble#280 · 8 commenti ·
-
Passkey supportAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
nativescript-community/ble#279 · 4 commenti · 1 reazione ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
nativescript-community/ble#276 · 3 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
nativescript-community/ble#275 · 6 commenti ·
Tutte le issue di nativescript-community/ble
Issue simili
-
[测试] 等待仓库加载后再记录多仓库排序基线Forse già presa @myot233 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
area:arcade p3-medium ready-for-agent testing type:docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
fderuiter/deruiter.dev#2369 ·
I maintainer di solito rispondono entro 1 giorno
-
area:devenv origin:agent type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
overengineeringstudio/effect-utils#1949 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
ccch1mneyyy/dsh-TUI#1631 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
MiniMax-AI/minimax-code#507 ·
I maintainer di solito rispondono entro 1 giorno