从GEAR S3心率监测器(HRM)检索数据到移动或服务器

时间:2018-04-17 11:57:34

标签: android tizen samsung-gear

我使用了来自https://developer.tizen.org/ko/community/tip-tech/accessing-heart-rate-monitor-hrm-sensor-data-native-applications?langredirect=1

的三星Gear S3的Tizen示例心率监测器代码

我想开发用于从S3 Gear中的心率监测器检索数据的Android或Tizen。我找到了来自https://developer.tizen.org/ko/development/guides/web-application/sensors/human-activity-monitor?langredirect=1#retrieve

的示例代码

我如何整合这个。请分享您的想法。非常感谢。

1 个答案:

答案 0 :(得分:0)

使用Samsung Accessory SDK,您可以在Android中开发一个可与Tizen app(Gear)通信的应用。 这是一个工作示例

How to integrate Samsung Gear Steps in android Application?

修改:

在这里,我提供测量心率的代码,并在Android发送请求时返回Android手机。我刚刚修改了previously mentioned post的代码并在此处分享。

这里我只提供dataOnReceive函数

的内容
            if (!SAAgent.channelIds[0]) {
                createHTML("Something goes wrong...NO CHANNEL ID!");
                return;
            }

            function sendHrData(heartRate){
                 // return Data to Android
                 SASocket.sendData(SAAgent.channelIds[0], 'HR: '+heartRate);
                 createHTML("Send massage:<br />" +
                             newData);

             tizen.humanactivitymonitor.stop('HRM');

            }

            var heartRateData=0;

            function onsuccessCB(hrmInfo) {

                console.log('Heart rate: ' + hrmInfo.heartRate);
                heartRateData = hrmInfo.heartRate;
                // holding 15 seconds as HRM sensor needs some time 
                setTimeout(function(){
                    sendHrData(heartRateData);
                    }, 15000);

            }

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

此代码不断返回心率。请根据您的要求进行修改,我只是分享Android手机和Samsung Gear之间的沟通想法。

enter image description here

将数据发送到服务器:

您可以使用 Ajax XmlHttpRequest 将数据发送到服务器

<强>的Ajax:

    function sendDataToServer() {
            'use strict';

            console.log( "ready!" );
              $.ajax({
                type: "Post",
                url: "http://YOUR_URL",
                success: function (data) {
                      console.log(JSON.stringify(data));
                 }
           });
        }

<强>的XmlHttpRequest:

function postDataToServer() {
var xmlHttp = new XMLHttpRequest();

xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            alert("data posted successfully..");
        } else {
            alert("failed to send data..");
        }
    }
}

xmlHttp.open("POST", "YOUR_URL");

xmlHttp.send("_TEST_STRING_DATA");

Auto generated code from REST viewer not working in Tizen IDE(Wearable) web app

XmlHttpRequest on Tizen TV exits application

RESTful service on emulator

  

注意:您需要在Android手机中安装Samsung Gear个应用程序。