javascript - DeviceInformation.findAllAsync DeviceInformation 返回不正确的名称属性

标签 javascript cordova bluetooth uwp

var rfcomm = Windows.Devices.Bluetooth.Rfcomm;
var sockets = Windows.Networking.Sockets;
var streams = Windows.Storage.Streams;
var deviceInfo = Windows.Devices.Enumeration.DeviceInformation;

var cordova = require('cordova');
module.exports = {

    connService: null,
    connSocket: null,
    connWriter: null,
    connReader: null,
    connDevice: null,

    list: function(successCallback, errorCallback) {

        setTimeout(function() {
            try {
                var selector =
                    rfcomm.RfcommDeviceService.getDeviceSelector(
                        rfcomm.RfcommServiceId.serialPort);
                var parsedDevices = [];

                deviceInfo.findAllAsync(selector, null).then(function(devices) {
                    if (devices.length > 0) {

                        for (var i = 0; i < devices.length; i++) {
                            parsedDevices.push({
                                id: devices[i].id,
                                name: devices[i].name //returns "SPP-dev" instead of name
                            })
                        }
                        successCallback(parsedDevices);
                    } else {
                        errorCallback("No devices found.");
                    }

                }, function(error) {
                    errorCallback({
                        error: "list",
                        message: error.message
                    });
                });


            } catch (ex) {
                errorCallback(ex);
            }
        }, 0);
    }
}

以下代码返回 DeviceInfromation.name 值,例如 SPP-dev、HM-12、SPP1 或串行端口,有人遇到过这种情况吗?

最佳答案

Following code returns in DeviceInfromation.name values like SPP-dev, HM-12, SPP1 or Serial Port

这是设计使然,并在 RS1 中进行了更改。您的代码正在查询 RfcommDeviceServices,并且这些名称与远程设备上的 Rfcomm 服务的名称相匹配。

如果您对外围设备名称感兴趣,则必须使用针对 BluetoothDevice 的选择器字符串。 ,或获取parent device来自 RfcommDeviceService 对象。

关于javascript - DeviceInformation.findAllAsync DeviceInformation 返回不正确的名称属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42734859/

相关文章:

android - Android 上的蓝牙声音输出

javascript - jquery 小滚动条显示问题

javascript - 如何使用 Algolia 搜索和分页保留其他 URL 参数

android - Cordova:android 和 ios 平台可以有不同的应用程序 ID 吗?

Android + PhoneGap拦截URL(相当于iOS的shouldStartLoadWithRequest)

javascript - Phonegap Jquery Mobile 将数据保存到手机

C# 和蓝牙编程

java - 操作后屏幕拒绝刷新

javascript - 将 angular2 应用程序从本地 NodeJS 转换为网站

javascript - 序列化一个奇怪的js对象