Могу ли я добавить информацию об уровне заряда батареи Android в свое местоположение перед отправкой данных в firebase?

#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.