私は約推定しようとしています。下記の方法でAndroidの電池残量を確認していますが、常に正確ではありません。バッテリーが20%、15%に達したときに2回 を保存した上から法の下 アンドロイドのバッテリー残時間を見積もる
- は
- それはおよそ推定値を計算します優先して、現在のタイムスタンプを保存します、精度を向上させるためにどんな提案を入力してください残りのバッテリ寿命を推定
おかげで
public static String getBatteryEstimation(Context context){ String contentText = ""; try{ //timestamp recorded when battery reach 20% long time1 = PreferencesUtil.getInstance().getLong(PreferencesUtil.KEY_BATTERY_THERESHOLD_TIME_1); //timestamp recorded when battery reach 15% long time2 = PreferencesUtil.getInstance().getLong(PreferencesUtil.KEY_BATTERY_THERESHOLD_TIME_2); long timeDiffInMillis = time2 - time1; long timeTakenFor1Percentage = Math.round(timeDiffInMillis/5); long timeLastForNext15Percentage = timeTakenFor1Percentage * 15; long hoursLast = Math.abs(TimeUnit.MILLISECONDS.toHours(timeLastForNext15Percentage)); long minutesLast = Math.abs(TimeUnit.MILLISECONDS.toMinutes(timeLastForNext15Percentage)- TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(timeLastForNext15Percentage))); String timeLastMessage = ""; if(hoursLast > 0){ timeLastMessage = String.valueOf(minutesLast)+" hour(s) "+String.valueOf(minutesLast) + " min(s)"; } else { timeLastMessage = String.valueOf(minutesLast) + " min(s)"; } DateFormat dateFormat = new SimpleDateFormat("HH:mm dd MMM"); Date date = new Date(); contentText = String.format(context.getString(R.string.battery_low_content_1), timeLastMessage, dateFormat.format(date)); } catch (Exception e){ e.printStackTrace(); } return contentText; }
代わりにそれらのサンプルに基づいてプロジェクションを行うと考えましたか?たとえば、減った%ごとにサンプルを取り、既知のアルゴリズムの1つを使って投影しますか? :) – JohanShogun
http://android.stackexchange.com/questions/45734/how-does-the-android-os-estimate-remaining-battery-time –
あなたはUtilクラスの環境設定を投稿できますか? – Kaushal28