Android Mobil Cihaz Sensörleri ve Kullanımları

Günümüzde hemen hemen tüm Android cihazlarda hareketi, yönü ve çeşitli çevre koşullarını inceleyen sensörler bulunur. Bu sensör verileri yüksek hassasiyet ve doğruluk ile hesaplama yeteneğine sahiptir.


Günümüz cihazlarının akıllı olmasını sağlayan parçalardan biri de sensörler ve onların doğru hesaplama yeteneğidir. Sensörlerin kullanım alanlarına örnek vermek gerekirse örneğin ışık sensörü telefonumuzun ekran parlaklığını otomatik şekilde ayarlanmasını sağlar ya da bir araba yarışı uygulaması kullanıcının yapmış olduğu sallama, döndürme gibi hareketleri algılamak için yerçekimi ve ivme sensörünü kullanabilir.


Görsel Linki


Görselde telefonlarda bulunan birçok sensörü görebilirsiniz ama her cihaz bu sensörlerin hepsini desteklemez.


Görsel Linki


Yukarıda gördüğünüz gibi desteklenmeyen çok sayıda sensör var ama bu oran % bakımından düşüktür. Günümüzde ki cihazların neredeyse %98’e yakını API 14 üstündedir. Bu da kullanıcıların kullandığı çoğu android cihazda yukarıdaki sensörlerin hepsinin desteklendiğinin göstergesidir.


Sensor Çalışma Mantığı


SensorManager android cihazın sensörlerini yönetmemizi sağlar. SensorManager’ı kullanmak için getSystemService(servis_adı) metodu kullanılır.


Yukarıda ki kod bloğu ile cihazın sahip olduğu sensör listesini elde edebiliriz.

Bir sensörün cihazda desteklenip desteklenmediğini anlamak için aşağıdaki kod bloğunu kullanırız.



Sensör değişimlerini dinlemek için de SensorEventListener interface’si implement edilir.



Bir sensörün doğruluğundaki değişiklikleri onAccuracyChanged yöntemini kullanarak izleyebiliriz.

  • SensorManager.SENSOR_STATUS_ACCURACY_HIGH En İyi Doğruluk

  • SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM Ortalama Doğruluk

  • SensorManager.SENSOR_STATUS_ACCURACY_LOW Düşük Doğruluk

  • SensorManager.SENSOR_STATUS_ACCURACY_UNRELIABLE En Kötü Doğruluk


Sensör Değerini Alma ve Durdurma


Sensörün değerini almaya başlamak için registerListener(SensorEventListener,service_name, sensitivity) metodu kullanılır.



registerListener‘ın 3. parametresinde sensitivity yani hassasiyet parametresi var. Bu hassasiyet çeşitleri şunlardır;


Hassasiyet Çeşitleri

  • SensorManager.SENSOR_DELAY_UI Kullanıcı arabirimi(UI) özelliklerini güncellemek için uygun bir oran belirler.

  • SensorManager.SENSOR_DELAY_GAME Oyunlar için en uygun güncelleme oranıdır.

  • SensorManager.SENSOR_DELAY_NORMAL Varsayılan güncelleme oranını seçer.

  • SensorManager.SENSOR_DELAY_FASTEST Mümkün olan en hızlı güncelleme oranıdır.


Sensör değerlerini almayı durdurmak için unregisterListener(SensorEventListener) metodu kullanılır.



Bazı Sık Kullanılan Sensör Tiplerini İnceleyelim


Gravity (Yer Çekimi)


Yer çekimini üç eksen doğrultusunda m/s² biriminde veren üç eksenli bir ivme ölçerdir. Cihazın yatay, dikey ve yükseklik değişimlerini verir.


Proximity (Yakınlık Ölçer)


Bir yakınlık sensörü genellikle bir elektromanyetik alan veya bir elektromanyetik radyasyon ışını (örneğin kızılötesi) yayar ve alandaki veya dönüş sinyalindeki değişiklikleri arar. Algılanan nesne genellikle yakınlık sensörünün hedefi olarak adlandırılır.




Light (Işık)


Işık şiddetini ölçen ve lx cinsinden geriye değer döndüren sensördür.




Linear Accelaration (Doğrusal Hız)


Doğrusal ivmeölçer, m/s² cinsinden yerçekimi kuvveti hariç olmak üzere cihazda kullanım için sensör kısıtlı ivmeyi ölçer. Örneğin arabanızın ne kadar hızlı gittiğini görmek için bu sensörü kullanabilirsiniz. Daha sağlıklı veriler elde etmek için ilk önce kalibrasyon yapmalısınız. Bunu yapmanın en basit yolu, uygulamanıza bir kalibrasyon adımı oluşturmaktır. Kalibrasyon sırasında, bir masaya yerleştirmesini isteyebilir ve ardından üçenin tamamlayıcı ofsetlerini okuyabilirsiniz.


Cihazın ekran yönü değiştiğinde eksen değiştirilmez. X ekseni yataydır ve sağa bakar, Y ekseni dikeydir ve yukarıyı gösterir ve Z eksen ön yüz aralığına doğru bakar. Bu sistemde cihazın arkasıdaki koordinatlar negatif Z eksenine sahiptir. Ayrıca, birçok tablet cihaz için doğal yön yataydır ama her uygulamanın doğal yönü her zaman dikey değildir.




Magnetic Field ( Manyetik Alan )


Cihazın manyetik alanını ölçer. Geriye μT cinsinden değer döndürür.




Pressure ( Basınç )


Cihaz üzerinde oluşan basıncı ölçen sensördür. hPa veya mbar cinsinden değer döndürür.




Gyroscope (Denge)


Açısal hız sensörleri veya açısal hız sensörleri olarak da bilinen jiroskop sensörleri , açısal hızı algılayan cihazlardır. Basit bir ifadeyle, açısal hız, birim zaman başına dönme açısındaki değişikliktir. Açısal hız genellikle rad/s cinsinden ifade edilir.




Ambient Temperature (Sıcak)


Ortamın sıcaklığını ölçen ve geriye Celsius(°C) ve Fahrenheit(°F) cinsinden değer döndüren sensördür.




#sensors #android #mobilesensors


0 yorum

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
imageedit_2_9667998092.png
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

Kurumsal Yazar Hesapları

adesso.png
mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın