Как мне можно добавить первые 5 значений акселерометра в массив?
Я пишу запрос на сервер и мне нужно первые 5 значений акселерометра добавить в массив, я пока без понятия как это сделать. Я уже сталкивался с подобной задачей, но тогда мне нужно было лишь отправить значения true(если данные изменяются) или false(если данные не меняются).
Вот код моей View Model:
private val z = ArrayList<FloatArray>()
fun sensorData(values: FloatArray) {
values[0].toString()
values[1].toString()
values[2].toString()
z.add(values)
Log.d("Accelerometer", "${values[0]}")
Log.d("Accelerometer", "${values[1]}")
Log.d("Accelerometer", "${values[2]}") }
Мой код MainActivity
override fun onSensorChanged(event: SensorEvent) {
if (event.sensor.type == Sensor.TYPE_ACCELEROMETER) {
sensorManager.unregisterListener(this)
viewModel.sensorData(event.values)
}
}
Даже если я и записываю первые 3 значения по всем осям(а их должно быть 5), то у меня в логах выводится ссылка на объект, а не его содержание. В общем я без понятия как это можно реализовать, посмотрел в интернете - толком ничего не нашел. Если поможете - буду премного благодарен.
Ответы (1 шт):
Я решил проблему. Пришлось мапнуть массив:
val accelerometerJson = z.map { it.joinToString(prefix = "[", postfix = "]") }
Я использовал joinToString, чтобы перевести все элементы массива в String, как по мне переопределять метод toString() не самое лучшее решение...