Я хочу получить заголовок моего устройства. Для этого я использовал акселерометр и магнитометр, а также реализовал класс. Но когда я вызываю этот класс, класс не возвращает никакого значения.
Я новичок в разработке Android. Пожалуйста, помогите мне. Заранее спасибо.
Я попробовал тот же код в основном упражнении, и он работает в основном упражнении.
public Heading(Context context) {
this.context = context;
sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
}
public void registerSensor() {
Sensor sensorAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(mSensorListener, sensorAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
Sensor sensorMagnetic = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
sensorManager.registerListener(mSensorListener, sensorMagnetic, SensorManager.SENSOR_DELAY_NORMAL);
}
public final SensorEventListener mSensorListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
mGravity = event.values;
}
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
mGeomagnetic = event.values;
}
heading = "event";
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
String getHeading() {
double azimuth = 0.0;
if (mGravity != null && mGeomagnetic != null) {
float R[] = new float[9];
float I[] = new float[9];
if (SensorManager.getRotationMatrix(R, I, mGravity, mGeomagnetic)) {
float[] orientation = new float[3];
SensorManager.getOrientation(R, orientation);
azimuth = orientation[0];
}
heading = String.valueOf((float)(Math.toDegrees(azimuth)+ 360) % 360);
}
return heading;
}
}
Мне нужен заголовок моего устройства.