Sensörler

Android Sensors HAL simgesi

Android sensörleri, uygulamalara bir mobil cihazın temelindeki fiziksel sensörlere erişim sağlar. Bunlar tarafından tanımlanan sanal cihazlar veri sağlanmaktadır sensors.h , sensör Donanım Özet Katmanı (HAL).

Android sensörleri nedir?

Android sensörler, bir dizi fiziksel sensörden gelen verileri sağlayan sanal cihazlardır: ivmeölçerler, jiroskoplar, manyetometreler, barometre, nem, basınç, ışık, yakınlık ve kalp atış hızı sensörleri.

Veri sağlayan fiziksel cihazlar listesinde yer almayanlar kamera, parmak izi sensörü, mikrofon ve dokunmatik ekrandır. Bu cihazların kendi raporlama mekanizmaları vardır; ayırma isteğe bağlıdır, ancak genel olarak Android sensörleri daha düşük bant genişliği verileri sağlar. Örneğin, ivmeölçer için "100hz x 3 kanal" ve kamera için "25hz x 8 MP x 3 kanal" veya mikrofon için "44kHz x 1 kanal".

Android, farklı fiziksel sensörlerin çip üzerindeki sisteme (SoC) nasıl bağlandığını tanımlamaz.

  • Genellikle, sensör yongaları bir sensör göbeği aracılığıyla SoC'ye bağlanır ve bu da verilerin düşük güçle izlenmesine ve işlenmesine izin verir.
  • Aktarım mekanizması olarak genellikle Inter-Integrated Circuit (I2C) veya Seri Çevresel Arayüz (SPI) kullanılır.
  • Güç tüketimini azaltmak için, bazı mimariler hiyerarşiktir, uygulamaya özel entegre devrede bazı minimum işlemler yapılır (ivmeölçer çipinde ASIC benzeri hareket algılama) ve daha fazlası bir mikro denetleyicide yapılır (sensör hub'ında adım algılama gibi) ).
  • Doğruluk, güç, fiyat ve paket boyutu özelliklerine dayalı bir mimari seçmek cihaz üreticisine kalmıştır. Daha fazla bilgi için Sensör yığını bölümüne bakın.
  • Gruplama yetenekleri, güç optimizasyonu için önemli bir husustur. Daha fazla bilgi için Gruplama konusuna bakın.

Her Android sensörünün, sensörün nasıl davrandığını ve hangi verileri sağladığını gösteren bir "türü" vardır.

  • Resmi Android Sensör türleri , sensor.h'de SENSOR_TYPE_… adları altında tanımlanmıştır .
    • Sensörlerin büyük çoğunluğu resmi bir sensör tipine sahiptir.
    • Bu türler Android SDK'da belgelenmiştir.
    • Bu türlere sahip sensörlerin davranışı Android Uyumluluk Test Paketi'nde (CTS) test edilir.
  • Bir üretici bir Android cihaza yeni bir sensör türü entegre ederse, üretici buna başvurmak için kendi geçici türünü tanımlayabilir.
    • Bu türler belgelenmemiş olduğundan, uygulama geliştiricilerin bunları kullanmaları pek olası değildir, çünkü onları bilmiyorlar veya nadiren mevcut olduklarını biliyorlar (yalnızca bu belirli üreticinin bazı cihazlarında).
    • CTS tarafından test edilmezler.
    • Android, bu tür bir sensör için resmi bir sensör türü tanımladığında, üreticiler kendi geçici türlerini kullanmayı bırakmalı ve bunun yerine resmi türü kullanmalıdır. Bu şekilde, sensör daha fazla uygulama geliştiricisi tarafından kullanılacaktır.
  • Cihazda bulunan tüm sensörlerin listesi HAL uygulaması tarafından rapor edilir.
    • Aynı tipte birkaç sensör olabilir. Örneğin, iki yakınlık sensörü veya iki ivmeölçer.
    • Uygulamaların büyük çoğunluğu, belirli bir tipte yalnızca tek bir sensör talep eder. Örneğin, varsayılan ivmeölçeri isteyen bir uygulama listedeki ilk ivme ölçeri alacaktır.
    • Sensörler genellikle uyanma ve uyanmama çiftleriyle tanımlanır, her iki sensör de aynı türü paylaşır, ancak uyanma özelliklerine göre farklılık gösterir.

Android sensörler, verileri bir dizi sensör olayı olarak sağlar.

Her olay şunları içerir:

Raporlanan verilerin yorumlanması sensör tipine bağlıdır. Her sensör türü için hangi verilerin rapor edildiğine ilişkin ayrıntılar için sensör türü tanımlarına bakın.

Mevcut belgeler

Geliştiricilere yönelik

Üreticilere yönelik