Skip to Content
HardwareBasis-APIGeräte suchen
Auf dieser Seite

Geräte suchen

Verbindungskandidaten erkennen. searchDevices() gibt ein Ergebnisobjekt zurück; die Geräteliste befindet sich nur dann in payload, wenn success gleich true ist.

Die Erkennung beweist nicht, dass ein Gerät initialisiert oder seine Wallet entsperrt ist. Die BLE-Erkennung kann einen ausgesendeten Namen und eine Verbindungs-ID zurückgeben, bevor eine Verbindung besteht. Die USB-Erkennung kann ebenfalls einen Deskriptor ohne initialisierte Identitätsfelder zurückgeben.

Methode

const result = await HardwareSDK.searchDevices(); if (!result.success) throw new Error(result.payload.error); if (!result.payload.length) throw new Error('No OneKey device found'); // For this example, select the only connected device. // In an app, ask the user to choose when multiple devices are present. if (result.payload.length !== 1) throw new Error('Select a device before continuing'); const { connectId } = result.payload[0]; if (!connectId) throw new Error('Device connection is unavailable'); const state = await HardwareSDK.getDeviceState(connectId); if (!state.success) throw new Error(state.payload.error); const deviceId = state.payload.identity.deviceId; if (!deviceId) throw new Error('Device has no wallet identity');

Die WebUSB-Autorisierung gehört in einen vom Nutzer gestarteten Ablauf. BLE-Scans benötigen die Bluetooth-Berechtigungen der Plattform. Siehe WebUSB oder React Native BLE.

Parameter

Das Parameterobjekt ist optional. Siehe den searchDevices-Typ und Gemeinsame Parameter für die installierte SDK-Version.

Ergebnisfelder

FeldTypBedeutung
connectIdstring | nullTransport-Routingschlüssel. Übergeben Sie späteren Geräteaufrufen einen Wert ungleich null.
connectProtocol'V1' | 'V2' | undefinedNach einer aktiven Protokollabfrage verfügbar; nicht aus dem ausgesendeten Namen ableiten.
serialNostring | null | undefinedPhysische Seriennummer, sofern nach der Initialisierung verfügbar.
deviceIdstring | nullFür die Seed-Lebensdauer gültige Identität, sofern verfügbar; aktualisieren mit getDeviceState.
uuidstringVeraltetes Kompatibilitätsfeld. Kann vor der Initialisierung leer sein; bevorzugen Sie serialNo für die physische Identität.
deviceTypeIDeviceTypeErkanntes Modell oder vor der Initialisierung unbekannt.
namestringAnzeigename; keine eindeutige Kennung.
commTypeOneKeyDeviceCommTypeVom Transport gemeldeter Kommunikationstyp.

Das genaue öffentliche Format ist SearchDevice. Verlassen Sie sich nicht auf zusätzliche interne Felder wie path.

USB und BLE verwenden unterschiedliche connectId-Werte für dasselbe physische Gerät. Erfassen Sie Geräte nach der Wiederverbindung erneut und aktualisieren Sie den Status, bevor Sie eine Wallet-Bindung wiederverwenden. Siehe Kennungen.

Fehlerbehandlung

Bei einem Fehler enthält payload das Feld error und einen optionalen Fehlercode in code. Behandeln Sie den Code, statt Fehlertexte zu vergleichen. Eine leere erfolgreiche Liste bedeutet, dass keine Kandidaten gefunden wurden; dies ist kein SDK-Fehler.

Protokollieren Sie nicht die vollständige Geräteliste oder Geräteobjekte. Beschränken Sie Diagnosedaten auf den Vorgangsstatus und nicht sensible Anzahlen.

Zuletzt aktualisiert am