Subscription preference

Notification emails are sent to your Samsung account email address.

* Email : anonymous@samsung.com

  

Close

Battery status error on Gear Sport -- web app [problem solved]

Forums View
Started by Developer ilya85parshakov , 1850 Seed Nov 27, 2017 04:16 Replies : 9 View : 913 Likes : 0
A couple of my apps got rejected because the app would show 'NaN' for battery percentage on the Gear Sport test unit. Any suggestion on how to fix this problem? I could not replicate the problem on my Gear S2.

Here is the code:

battery = navigator.webkitBattery || navigator.battery || navigator.mozBattery;
document.getElementById("battery").innerHTML = Math.round(battery.level * 100) + "%"; // this results in 'NaN%'
Tags

batterypercentagegearsport

Post Reply
Board View
Samsung Developer iqbal.sublime , 37260 Seed Nov 27, 2017 09:49 Post #1 0
hi~
I just checked on my Gear Sport....it works fine for me 
Code

var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;
console.log(battery);

More here, 
developer.tizen.org/dev-guide/2.4/org.tizen.tutorials/html/web/w3c/device/battery_tutorial_w.htm




Post Reply
Board View
Developer ilya85parshakov , 1850 Seed Nov 27, 2017 17:35 Post #2 0


This content has been quoted from iqbal.sublime’s thought.

hi~
I just checked on my Gear Sport....it works fine for me 

Code

var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;
console.log(battery);

More here, 
developer.tizen.org/dev-guide/2.4/org.tizen.tutorials/html/web/w3c/device/battery_tutorial_w.htm




 

Thank you!

I guess there is something wrong with their Gear Sport test unit then.

By the way, what is the point of checking navigator.battery and navigator.mozBattery if Tizen never supported them? Only navigator.webkitBattery worked on my Gear S2.

navigator.getBattery() is not supported either.


Post Reply
Board View
Developer ilya85parshakov , 1850 Seed Nov 27, 2017 18:55 Post #3 0
  By the way, there is no need to round down the battery level because navigator.webkitBattery.level returns a number with two decimal places.

Math.floor(navigator.webkitBattery.level * 100) returns the same thing as navigator.webkitBattery.level * 100

==

And here is another weirdness that I found:

battery = navigator.webkitBattery;
document.getElementById("battery").innerHTML = battery.level*100 + "%"; // returns '100%' instead of the actual battery level

battery = navigator.webkitBattery;
window.onload = function(){document.getElementById("battery").innerHTML = battery.level*100 + "%";}; // returns the actual battery level

battery = navigator.webkitBattery;
setTimeout(function(){document.getElementById("battery").innerHTML = battery.level*100 + "%";},1); // returns the actual battery level

window.onload = function(){document.getElementById("battery").innerHTML = navigator.webkitBattery.level*100 + "%";}; // returns '100%' instead of the actual battery level
Post Reply
Board View
Samsung Developer iqbal.sublime , 37260 Seed Nov 29, 2017 05:28 Post #4 0


This content has been quoted from ilya85parshakov’s thought.

  By the way, there is no need to round down the battery level because navigator.webkitBattery.level returns a number with two decimal places.

Math.floor(navigator.webkitBattery.level * 100) returns the same thing as navigator.webkitBattery.level * 100

==

And here is another weirdness that I found:

battery = navigator.webkitBattery;
document.getElementById("battery").innerHTML = battery.level*100 + "%"; // returns ’100%’ instead of the actual battery level

battery = navigator.webkitBattery;
window.onload = function(){document.getElementById("battery").innerHTML = battery.level*100 + "%";}; // returns the actual battery level

battery = navigator.webkitBattery;
setTimeout(function(){document.getElementById("battery").innerHTML = battery.level*100 + "%";},1); // returns the actual battery level

window.onload = function(){document.getElementById("battery").innerHTML = navigator.webkitBattery.level*100 + "%";}; // returns ’100%’ instead of the actual battery level

Yeah! navigator.webkitBattery.level does the thing
I am okay with this... no need to rounding/flooring.. 
Post Reply
Board View
Developer ilya85parshakov , 1850 Seed Nov 30, 2017 19:33 Post #5 0
I re-submitted the app with a few minor changes and it got rejected again for the same reason. The rejection report says:
"Question? Please contact us http://help.content.samsung.com/csseller"

So I go there and submit a question. A day later I get a very useful reply: 
"Since we cannot provide you with enough technical support in application development. If you need technical support, please kindly visit our Developer Site (http://developer.Samsung.com/home.do)."

So how on Earth can I reach Samsung developers?
Post Reply
Board View
Developer ilya85parshakov , 1850 Seed Dec 05, 2017 19:18 Post #6 0
The app got rejected a couple more times. I have no idea what else I can try. They get errors on both their Gear S3 and Gear Sport test units, so I guess it's related to Tizen 3.0 somehow.

Could someone with a watch running Tizen 3.0 please test the code below and see if either line works? Is there any other way to get battery percentage?
Code

<html>
<body>
<div id="batteryID">battery</div>
<script>
var batterystatus = navigator.battery || navigator.mozBattery || navigator.webkitBattery;
setTimeout(function(){document.getElementById("batteryID").innerHTML = Math.round(batterystatus.level*100) + "%";},1000);

// navigator.getBattery().then(function(battery) {document.getElementById("batteryID").innerHTML = battery.level;});
</script>
</body>
</html>


 
Post Reply
Board View
Samsung Developer iqbal.sublime , 37260 Seed Dec 06, 2017 05:22 Post #7 0


This content has been quoted from ilya85parshakov’s thought.

The app got rejected a couple more times. I have no idea what else I can try. They get errors on both their Gear S3 and Gear Sport test units, so I guess it’s related to Tizen 3.0 somehow.

Could someone with a watch running Tizen 3.0 please test the code below and see if either line works? Is there any other way to get battery percentage?

Code

<html>
<body>
<div id="batteryID">battery</div>
<script>
var batterystatus = navigator.battery || navigator.mozBattery || navigator.webkitBattery;
setTimeout(function(){document.getElementById("batteryID").innerHTML = Math.round(batterystatus.level*100) + "%";},1000);

// navigator.getBattery().then(function(battery) {document.getElementById("batteryID").innerHTML = battery.level;});
</script>
</body>
</html>


 

 

As this is the Seller office ralated issue you should communicate through seller office site .. 
Please ask question from Support>My Q&A 
Or directly here seller.tizenstore.com/qa/getQaList.as

Post Reply
Board View
Developer ilya85parshakov , 1850 Seed Dec 06, 2017 06:00 Post #8 0
I did (see my post above) and they sent me here.
Post Reply
Board View
Developer ilya85parshakov , 1850 Seed Dec 12, 2017 23:51 Post #9 0
I have found a solution that works perfectly on Tizen 3.0 and earlier versions!

tizen.systeminfo.getPropertyValue("BATTERY", function(battery){document.getElementById("battery").textContent = Math.round(battery.level*100) + "%";});

Math.round is actually required because occasionally you get weird values like 0.88000000000000026 or 0.8799999999999999999986. Do not use Math.floor
Post Reply