hyoromoのブログ

iOS/AndroidもしくはCocos2dxネタを書いています

JN-DK01ベース端末のバッテリー情報について

素のAndroidの場合、内部で保持しているバッテリー情報は1%刻みで持っていますが。JN-DK01ベースの端末*1の場合は10%刻みで保持しているようです。
保持の仕方も、例えばバッテリー残量が80%から70%になった場合と60%から70%になった場合で、内部に保持されるデータが同じになります。70%を保持してる際に、71%から70%になろうが69%から70%になろうが内部保持データは変わりません。
一見自然に見えますが、つまり内部的にバッテリー残量が70%を示す場合、実際の残量範囲が79%から61%までと幅広いです。

妥協しながら範囲取得

10%刻みの範囲を判断するには、過去バッテリー残量を保持すして判断するしかなさそうです。

バッテリー範囲 コールされるバッテリー残量 過去バッテリー残量
100-090 100 -
100-090 090 080
090-080 090 100
090-080 080 070
080-070 080 090
080-070 070 060
070-060 070 080
070-060 060 050
060-050 060 070
060-050 050 040
050-040 050 060
050-040 040 030
040-030 040 050
040-030 030 020
030-020 030 040
030-020 020 010
020-010 020 030
020-010 010 000
010-000 010 020
010-000 000 -

ただし、途中で充電された場合は範囲から外れてしまいます。

他の端末でも同じ現象が?

Milestoneもまったく同じようです。

*1:現時点ではIS01LYNX