- Forum-Beiträge: 615
08.11.2020, 17:09:50 via Website
08.11.2020 17:09:50 via Website
Hallo zusammen
Ich möchte die Orientierung von meinem Handy auslesen. Ich habe ein Beispiel mit
magnetfeld = sensor.getDefaultSensor(Sensor.TYPE_ORIENTATION);
Doch ist TYPE_ORIENTATION veraltet. In der Doku steht man soll es mit
sensor = manager.getOrientation(R, values);
ersetzen. Aber ich mache was falsch. Es funktioniert nicht. Irgend wie verstehe ich es nicht.
Nach der Doku gibt es als Rückgabe ein Array. Aber ich sollte den Zugriff auf den Sensor erhalten. Oder verstehe ich da was ganz falsch. Wie muss ich die Orientierung auslesen. Was mache ich falsch?
Kann mir jemand zeigen wie es geht.
Zum Schluss mein Code:
package ch.robbisoft.accelerometer;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private TextView obj_x;
private TextView obj_y;
private TextView obj_z;
private SensorManager manager = null;
private float[] sensor = null;
private Context ctx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ctx = getApplicationContext();
obj_x = findViewById(R.id.txt_x_wert);
obj_y = findViewById(R.id.txt_y_wert);
obj_z = findViewById(R.id.txt_z_wert);
float[] R = new float[4];
float[] values = new float[3];
manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
// magnetfeld = sensor.getDefaultSensor(Sensor.TYPE_ORIENTATION);
sensor = manager.getOrientation(R, values);
}
@Override
protected void onResume() {
super.onResume();
manager.registerListener(ctx, sensor, SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
manager.unregisterListener(ctx);
super.onPause();
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
}
Gruss Renato
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.