首页 > 解决方案 > 在将数据发送到 Firebase 之前,我可以将 android 电池电量信息添加到我的位置吗?

问题描述

我正在创建一个 android gps 跟踪应用程序,到目前为止,我的位置已使用 Location 类上传到 firebase:

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。我可以扩展“位置”类以包含“电池”字段和在发送前更新此字段的方法吗?

标签: javaandroidbatterymanager

解决方案


作为 DatabaseReference.set(Object),您可以创建包含位置数据和电池数据的自定义对象(getter、setter)。之后,您可以将值设置为 Firebase。


推荐阅读