2016-07-23 98 views
0

我已經在Intel XDK中使用藍牙低功耗(BLE)概念創建了一個應用程序,使用了cordova-plugin-ble-central插件來獲取他們的信息。現在只有deviceID,RSSI值。如何從cordova-plugin-ble-central獲得BLE服務(即電池電量,溫度)?

我正在嘗試使用cordova插件(https://github.com/don/cordova-plugin-ble-central)從Beacon設備的Battery level,Temperature以及一些相關服務。但我無法連接我的設備。

當我在設備上運行我的應用程序時,它僅返回「外圍設備ID」。我的代碼是

onConnect = function() { 
      alert('onconnect start'); 
      // TODO check if we have the battery service 
      // TODO check if the battery service can notify us 
      //ble.startNotification(deviceId, battery.service,battery.level, app.onBatteryLevelChange, app.onError); 
      batteryStateButton.dataset.deviceId = deviceId; 
      disconnectButton.dataset.deviceId = deviceId; 
      app.showDetailPage(); 
      alert('onconnect end'); 
     };  
    ble.connect(deviceId, onConnect, app.onError); 

當我使用上面的代碼時,沒有得到'onconnect start'警報。 在我的插件代碼

connect: function (device_id, success, failure) { 
    alert(device_id); 
    var successWrapper = function(peripheral) { 
     alert('successWrapper'); 
     convertToNativeJS(peripheral); 
     success(peripheral); 
    }; 
    cordova.exec(successWrapper, failure, 'BLE', 'connect', [device_id]); 
}, 

只從插件獲得設備ID的警報。此外,我試圖從我的手機配對設備,得到一些錯誤「無法與deviceid溝通」。有什麼建議嗎?

回答

0

您正在使用哪個信標設備?你知道設備是否實現了這些服務嗎?

對於初學者來說,信標根據定義不可連接,所以連接將是一個額外的用例。信標是廣播公司,而不是外圍設備。

設備ID和RSSI是預期的,這是您從廣告數據中獲得的,而不是從GATT服務中獲得的。

+0

該設備名稱是「iBeacon」。我剛剛嘗試了一些PlayStore應用程序(即nRF Connect),它也獲得了溫度和電池電壓。 –

+0

「iBeacon」不說多少,關於製造商,類型等的任何信息? –

+0

設備模型[http://minew.en.alibaba.com/product/60172214312-220649015/BLE_4_0_Proximity_iBeacon_module_MiniBeacon_bluetooth_beacon_Type_Nordic_nRF51822_iBeacon.html](http://minew.en.alibaba.com/product/60172214312-220649015/BLE_4_0_Proximity_iBeacon_module_MiniBeacon_bluetooth_beacon_Type_Nordic_nRF51822_iBeacon.html) –