Android API ile Telefon Oryantasyonunu Alma: Gravity Sensörü
Android cihazlar, cihazın yönünü ve hareketini algılamak için çeşitli sensörlerle donatılmıştır. Bu sensörlerden biri de yerçekimi sensörüdür. Yerçekimi sensörü, cihazın Dünya’nın yerçekimi alanına göre yönünü belirler. Bu bilgi, cihazın ekranının yönünü ayarlamak, oyunlarda hareket kontrolü sağlamak ve diğer birçok uygulamada kullanılmaktadır.
Yerçekimi Sensörünü Kullanma
Yerçekimi sensörünü kullanmak için öncelikle AndroidManifest.xml dosyasında sensör iznini tanımlamanız gerekir. Bunu aşağıdaki kod satırını ekleyerek yapabilirsiniz:
xml
<uses-permission android:name="android.permission.BODY_SENSORS" />
Ardından, sensörü kullanmak için bir SensorManager nesnesi oluşturmanız gerekir. Bunu aşağıdaki kod satırını kullanarak yapabilirsiniz:
java
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
SensorManager nesnesini oluşturduktan sonra, yerçekimi sensörünü aşağıdaki kod satırını kullanarak alabilirsiniz:
java
Sensor gravitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
Yerçekimi sensörünü aldıktan sonra, sensör verilerini dinlemek için bir SensorEventListener nesnesi oluşturmanız gerekir. SensorEventListener nesnesi, sensör verileri değiştiğinde çağrılacak metotları içerir. Aşağıdaki kod satırlarını kullanarak bir SensorEventListener nesnesi oluşturabilirsiniz:
“`java
SensorEventListener gravitySensorListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
// Sensör verileri değiştiğinde bu metot çağrılacaktır.
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// Sensörün doğruluğu değiştiğinde bu metot çağrılacaktır.
}
};
“`
SensorEventListener nesnesini oluşturduktan sonra, sensör verilerini dinlemek için aşağıdaki kod satırını kullanabilirsiniz:
java
sensorManager.registerListener(gravitySensorListener, gravitySensor, SensorManager.SENSOR_DELAY_NORMAL);
Bu kod satırı, sensör verilerinin normal hızda dinleneceğini belirtir. Sensör verilerinin daha hızlı veya daha yavaş dinlenmesini istiyorsanız, SENSOR_DELAY_FAST veya SENSOR_DELAY_GAME gibi farklı bir değer kullanabilirsiniz.
Yerçekimi Sensöründen Veri Alma
Yerçekimi sensöründen veri almak için onSensorChanged() metodunu kullanabilirsiniz. Bu metot, sensör verileri değiştiğinde çağrılacaktır. onSensorChanged() metodu, aşağıdaki parametreleri alır:
- event: Sensör verilerini içeren bir SensorEvent nesnesi.
- accuracy: Sensörün doğruluğunu belirten bir int değeri.
SensorEvent nesnesi, sensör verilerini içeren bir dizi float değeri içerir. Bu dizi, cihazın x, y ve z eksenlerindeki yerçekimi ivmesini içerir. Yerçekimi ivmesi, metre/saniye kare (m/s²) biriminde ölçülür.
Yerçekimi Sensörünü Kullanma Örnekleri
Yerçekimi sensörü, birçok farklı uygulamada kullanılabilir. İşte birkaç örnek:
- Ekran yönünü ayarlama: Yerçekimi sensörü, cihazın ekranının yönünü ayarlamak için kullanılabilir. Örneğin, cihazı yatay konuma getirdiğinizde ekranın da yatay konuma geçmesini sağlayabilirsiniz.
- Oyunlarda hareket kontrolü: Yerçekimi sensörü, oyunlarda hareket kontrolü sağlamak için kullanılabilir. Örneğin, cihazı eğerek oyun karakterini hareket ettirebilirsiniz.
- Adım sayacı: Yerçekimi sensörü, adım sayacı uygulamalarında kullan