Tizen Web应用程序访问Samsung Gear S3边界上的心率监视器时出现“权限被拒绝”错误

in绳

我正在尝试为我的Samsung Gear S3前沿创建一个Web应用程序。但是,我收到“权限被拒绝”安全错误。

我有:

<tizen:privilege name="http://developer.samsung.com/privilege/healthinfo"/>

<tizen:privilege name="http://tizen.org/privilege/healthinfo"/>

在我的config.xml中启用。

如果我在设置中启用了该应用程序的传感器权限,则可以获取心率读数,但是每次我编译并上传较新版本时,它都会重置,这很繁琐。

这是我的JS代码,在将数据从GEAR S3心率监视器(HRM)检索到移动设备或服务器之后

window.onload = function () {
    // add eventListener for tizenhwkey
    document.addEventListener('tizenhwkey', function(e) {
        if(e.keyName === "back") {
            try {
                tizen.application.getCurrentApplication().exit();
            } catch (ignore) {
            }
        }
    });

    // Sample code
    var textbox = document.querySelector('.contents');
    var box = document.querySelector('#textbox');

    textbox.addEventListener("click", function(){
        console.log('have box');

        if (fetch === undefined) {
            box.innerHTML = 'No such thing as fetch';
        } else {
            box.innerHTML = "We have fetch";            
        }
    });

    var sensors = tizen.sensorservice.getAvailableSensors();
    console.log('Available sensors: ' + sensors.toString());

    var heartRateData=0;

    function onsuccessCB(hrmInfo) {

        box.innerHTML = 'Heart rate: ' + hrmInfo.heartRate;
        heartRateData = hrmInfo.heartRate;
        // holding 15 seconds as HRM sensor needs some time 
    }

    function onerrorCB(error) {
        tizen.humanactivitymonitor.stop('HRM');
        console.log('Error occurred: ' + error.message);
    }

    function onchangedCB(hrmInfo) {
        //alert("onChanged...");
        tizen.humanactivitymonitor.getHumanActivityData('HRM', onsuccessCB, onerrorCB);

    }

    tizen.humanactivitymonitor.start('HRM', onchangedCB);
};

我希望这些config.xml设置能够照顾到权限,但是显然不是。该手表运行的是Tizen 4.0.0.2,并且运行的是“ HRM_RAW”传感器,如果不手动设置权限,我也无法访问该传感器。

我该如何解决这个问题?

in绳

经过一些更具创意的网络搜索,我想自己找到了答案。它是使用tizen.ppm.requestPermission()(按照https://developer.tizen.org/forums/web-application-development/security-exception-while-accessing-hrm

这导致了预期的行为。该应用程序在安装时通过可穿戴用户界面询问是否应授予许可,以及该决定是否为默认决定。

但是,我做了一些重构,因为您的应用程序中经常需要多个权限,而回调地狱就在附近。所以我围绕着tizen调用写了一个Promise包装器:

function requestPermit(uri) {
  return new Promise(function(resolve, reject) {
    tizen.ppm.requestPermission(uri,
      function(success) => { resolve(success); },
      function(error) => { reject(error); });
  });
}

这使我能够

function main() {
  return permitRequester('http://tizen.org/privilege/healthinfo')
    .then(function() { return permitRequester('http://developer.samsung.com/privilege/healthinfo'); })
    .then(function() { return permitRequester('http://developer.samsung.com/privilege/medicalinfo'); })
    .then(function() { return displayHeartRate(); })
    .catch(function(err) { return console.log(err); });
}

window.onload = main();

希望这对任何人都有帮助。如果您需要更多信息,请通过https://github.com/reinvantveer/Axyll从中创建一个ES2016 npm / webpack项目。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过 Tizen Studio 在 Samsung Gear Fit 2 上安装应用程序

如何通过Tizen Studio在Gear S2上安装应用程序?

Tizen Studio-Gear S3-SIGNATURE_VERIFICATION_FAILED

直到我重新启动Gear,TIZEN(Gear S2)通知才会出现

如何在Samsung Tizen Gear s2中使用挡板在列表中滚动浏览项目?

从Tizen 2.3.2.3升级到Tizen 3.0.0.1后,Gear S3中的签名错误

使用Samsung TV Tizen Web应用程序进行调试时,Chrome devtools检查器显示空白屏幕

在Gear S2设备上启动Web应用程序时出现错误81

Gear S2:如何使DUID出现在Tizen IDE中

如何在 Tizen Native (Gear S2) 中找到传感器规格

如何获得计步器步数数据与Gear s2(Tizen 2.3.2)中的SHealth相同?

当系统弹出窗口显示Unity3D Samsung Gear VR蓝牙Android时,应用程序冻结

Samsung Tizen Smart TV Web应用程序键盘UI上的向左或向右箭头键不适用于输入文本

从“ Sensor” Samsung Gear Live获取心率

尝试从Tizen SDK启动Tizen监视应用程序时出现“安装或卸载暂时不起作用”错误

如何借助TIZEN PROGRAMMING在TIZEN STORE上搜索特定的应用程序?

Tizen TV上的XmlHttpRequest退出应用程序

如何在tizen Web应用程序上获取消息正文?

tizen Web 应用程序上的手机电池状态

Tizen 模拟器可穿戴 Web 应用程序样式不起作用

如何为Samsung TV Tizen Web应用程序构建良好的UI?

在Tizen Web应用程序中,我可以使用javascript Web Worker在关闭的应用程序上运行后台代码吗?

如何在Crosswalk下的Tizen 3.0 Feb里程碑上运行面向景观的Web应用程序?

当插入Gear VR时如何防止Oculus Home接管Cordova + React VR应用程序

在Tizen Emulator上执行测试应用程序时出现黑屏

Tizen应用未在设备上安装

签名错误导致设备上的应用程序安装失败-tizen Studio

Tizen TV Web应用程序:意外的停止进度

Tizen TV Web应用程序是否有任何框架