Skip to Content
MatérielAPI de baseRechercher des appareils
Sur cette page

Rechercher des appareils

Découvrir les connexions candidates. searchDevices() renvoie un objet résultat ; la liste des appareils se trouve dans payload uniquement lorsque success vaut true.

La découverte ne prouve pas qu’un appareil est initialisé ni que son portefeuille est déverrouillé. La découverte BLE peut renvoyer un nom annoncé et un ID de connexion avant qu’une connexion existe. La découverte USB peut aussi renvoyer un descripteur sans champs d’identité initialisés.

Méthode

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');

L’autorisation WebUSB doit faire partie d’un parcours initié par l’utilisateur. Le scan BLE nécessite les autorisations Bluetooth de la plateforme. Consultez WebUSB ou BLE React Native.

Paramètres

L’objet de paramètres est facultatif. Consultez le type searchDevices et Paramètres communs pour la version du SDK installée.

Champs du résultat

ChampTypeSignification
connectIdstring | nullClé d’orientation du transport. Transmettez une valeur non nulle aux appels ultérieurs à l’appareil.
connectProtocol'V1' | 'V2' | undefinedDisponible après une interrogation active du protocole ; ne le déduisez pas du nom annoncé.
serialNostring | null | undefinedNuméro de série physique lorsqu’il est disponible après initialisation.
deviceIdstring | nullIdentité liée à la durée de vie de la graine lorsqu’elle est disponible ; actualisez avec getDeviceState.
uuidstringChamp de compatibilité obsolète. Il peut être vide avant l’initialisation ; privilégiez serialNo pour l’identité physique.
deviceTypeIDeviceTypeModèle détecté, ou inconnu avant l’initialisation.
namestringNom d’affichage ; ce n’est pas un identifiant unique.
commTypeOneKeyDeviceCommTypeType de communication signalé par le transport.

La structure publique exacte est SearchDevice. Ne dépendez pas de champs internes supplémentaires tels que path.

USB et BLE utilisent des valeurs de connectId différentes pour le même appareil physique. Réénumérez les appareils après reconnexion et actualisez l’état avant de réutiliser une association de portefeuille. Consultez Identifiants.

Gestion des échecs

En cas d’échec, payload contient error et un élément facultatif code. Gérez le code plutôt que de comparer le texte de l’erreur. Une liste vide réussie signifie qu’aucun candidat n’a été trouvé ; ce n’est pas un échec du SDK.

Ne journalisez pas la liste complète des appareils ni les objets appareil. Limitez les diagnostics au statut de l’opération et aux décomptes non sensibles.

Dernière mise à jour le