2017-09-21 18 views
0

我正在制作一个用于访问Bluetooth Classic设备的算法,其中我从直接从Android服务获取的实例中获取了一个类型集合java.util.Set,我需要在这个集合中进行交互以获得存在的对象的属性,并根据NativeScript中使用JavaScript语言构建的实体模型构建一个新的Array。如何使用NativeScript从java.util.Set java服务创建JavaScript数组并将其转换为Android

在NativeScript中如何使用JavaScript语言执行这样的兴趣?

这里是下面的代码,建议这样你可以得到什么,我想做一个感觉:

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; 
} 

回答

1

Set.toArray()返回java.lang.Object继承[]在Java中,这将被整理到一个JavaScript数组在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

谢谢@pkanev,我怀疑它是否会那么简单,我害怕错误。我会测试并回来确认你的答案是正确的。再次感谢。 – Delfino

相关问题