2017-09-21 20 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

相關問題