#java #android #batterymanager
Вопрос:
Я создаю приложение для отслеживания gps на Android, и до сих пор мое местоположение загружалось в firebase с помощью класса Location:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference(path);
Location location = locationResult.getLastLocation();
if (location != null) {
//Save the location data to the database//
ref.setValue(location);
Log.d(TAG, "Location sent");
}
Я также могу определить уровень заряда батареи:
public float getBatteryLevel(){
Intent batteryIntent = registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
if(level == -1 || scale == -1){
return 50.0f;
}
return ((float)level/(float)scale) * 100.0f;
}
Что я хотел бы сделать, так это добавить поле уровня заряда батареи в местоположение, чтобы оно отправлялось на firebase как единое целое.
Могу ли я расширить класс «Местоположение», включив поле «Батарея» и способ обновления этого поля перед отправкой?
Ответ №1:
Как DatabaseReference.set(объект), вы можете создать свой пользовательский объект (геттер,сеттер), содержащий данные о местоположении и данные о батарее. После этого вы можете установить значение Firebase.