2017-09-21 2 views
0

Je fais un algorithme d'accès aux périphériques Bluetooth Classic dans lequel je reçois d'une instance obtenue directement à partir d'un service Android une collection de type java.util.Set, j'ai besoin d'interagir dans cette collection pour obtenir les propriétés des objets présents et construire un nouveau tableau, selon un modèle d'entité construit en NativeScript avec le langage JavaScript.comment créer un tableau JavaScript à partir d'un service java.util.Set java en Android avec NativeScript

De quelle manière un tel intérêt devrait-il être effectué dans NativeScript en utilisant le langage JavaScript?

Voici le code proposé ci-dessous afin que vous puissiez avoir une idée de ce que je veux faire:

Bluetooth.getBoundedDevices = function(){ 
    java.util.Set<android.bluetooth.BluetoothDevice> pairedDevices = adapter.getBondedDevices(); 
    var obArrayDevices = new ObservableArray(); 
    // If there are paired devices 
    if (pairedDevices.size() > 0) { 
    // Loop through paired devices 
    for (deviceAndroid of pairedDevices.toArray([{}])) { 
     var device = new Observable({ 
     type: 'scanResult', 
     UUID: deviceAndroid.getAddress(), 
     name: deviceAndroid.getName(), 
     RSSI: 0, 
     state: 'disconnected' 
     }); 
     console.log("dispositivo Encontrado:"); 
     console.dir(device); 
     obArrayDevices.add(device); 
    } 
    } 
    return obArrayDevices; 
} 

Répondre

1

Set.toArray() retourne un java.lang.Object [] en Java, qui sera rangea à un JavaScript tableau lorsqu'il est utilisé en JavaScript.

... 
const pairedDevices = adapter.getBondedDevices().toArray(); 
pairedDevices.forEach((device) => { 
    let newDevice = { 
    type: 'scanResult', 
    UUID: device.getAddress(), 
    name: device.getName(), 
    RSSI: 0, 
    state: 'disconnected' 
    } 

    obArrayDevices.add(newDevice); 
}); 
.... 
+0

Merci @pkanev, j'étais dans le doute si ce serait si simple et j'avais peur de me tromper. Je vais tester et revenir ici pour confirmer que votre réponse est correcte. Merci encore. – Delfino