Я пытаюсь разработать собственный код в Codename One для считывания данных датчика акселерометра. Я посмотрел, как это делается в коде Android Java, реализовал его в Codename One, скомпилирован без ошибок, но, похоже, даже не прошел процедуру инициализации класса датчика ниже. Метод sensor.startReading(), кажется, никогда не называется. Правильно ли я использовал собственный код считывания акселерометра?Как реализовать собственный код чтения акселератора в Codename 1 для Android?
Вот как я называю датчик метод класса считывания:
Sensor sensor = (Sensor)NativeLookup.create(Sensor.class);
if (sensor != null && sensor.isSupported()) {
sensor.startReading();
}
Вот как я реализую датчик считывания:
package com.pk.sensors;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.hardware.SensorEventListener;
import android.hardware.SensorEvent;
import android.content.Context;
public class SensorImpl extends Activity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private float accelX = 0f;
private float accelY = 0f;
private float accelZ = 0f;
public void startReading() {
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
public void onSensorChanged(SensorEvent event) {
this.accelX = event.values[0];
this.accelY = event.values[1];
this.accelZ = event.values[2];
}
public String getAcceleration() {
return String.valueOf(this.accelX) + " " +
String.valueOf(this.accelY) + " " +
String.valueOf(this.accelZ);
}
public boolean isSupported() {
return true;
}
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
Это учебник я реализовал ускоритель считывания с: http://www.techrepublic.com/blog/software-engineer/a-quick-tutorial-on-coding-androids-accelerometer/
Это подействовало. Спасибо! – pkout
Если у меня может возникнуть следующий важный вопрос: мои Netbeans не распознают com.codename1.impl.android. Он останавливается на имплантате. Однако он работает на сервере сборки Codename 1. Он компилируется там просто отлично. Нужно ли устанавливать некоторые дополнительные библиотеки для моей IDE для распознавания пространства имен? – pkout
Нет, отлично, что IDE не распознает это. – Chen