2015-03-09 2 views
3

Я разрабатываю Android Wear Watch Face, и я хочу показать процентное соотношение батареи и телефона. Мне удалось получить процент часов, но я новичок в Java & Android, поэтому, пожалуйста, пройдите на меня с объяснением.Android Wear Watch Face получить процент от батареи

private String getBatteryInfoPhone() 
{ 
    float retVal = 0; 

    IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
    Intent batteryStatus = registerReceiver(null, iFilter); 

    int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 

    int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
    int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 

    retVal = level/(float)scale; 

    return Integer.toString(Math.round(retVal)) + "%"; 
} 

Это код, который у меня есть в данный момент, чтобы дать мне процент моего телефона. Обратите внимание, что это Watch Face, поэтому это сервис без каких-либо действий.

С помощью этого решения я постоянно получаю 1% вместо фактического процента.

+0

Не могу дождаться, когда это выйдет –

ответ

4
batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 

даст вам уже значение от 1 до 100, поэтому вы можете подключить его непосредственно в процентах. Вам не нужно разделить его по шкале.

+0

Большое вам спасибо, это правда, но теперь, когда я беру информацию из этой строки, я возвращаю процент своих часов, а не моего телефона. – Applesouce

+0

Если вы хотите получить процент заряда батареи с телефона, вам необходимо будет синхронизировать эту информацию с помощью 'DataApi'. Итак, прочитайте значение таким же образом с мобильного модуля, а затем синхронизируйте его с часами. Вот ссылка на api http://developer.android.com/training/wearables/data-layer/index.html – gruszczy

Смежные вопросы