Bu bölümde sensör eksenleri, temel sensörler ve bileşik sensörler (aktivite, tutum, kalibre edilmemiş ve etkileşim) açıklanmaktadır.
Sensör eksenleri
Birçok sensörden gelen sensör etkinliği değerleri, cihaza göre statik olan belirli bir çerçevede ifade edilir.
Mobil cihaz eksenleri
Sensor API yalnızca ekranın doğal yönüne göre çalışır (Cihazın ekran yönü değiştiğinde eksenler değiştirilmez).
1. şekil. Sensor API tarafından kullanılan koordinat sistemi (mobil cihaza göre)
Otomotiv: akslar
Android Automotive uygulamalarında eksenler, araç gövde çerçevesine göre tanımlanır. Araç referans çerçevesinin başlangıç noktası, arka aksın merkezidir. Araç referans çerçevesi şu şekilde yönlendirilir:
- X ekseni sağa doğru bakar ve aracın simetri düzlemine dik olan yatay bir düzlem üzerindedir.
- Y ekseni ileriye doğru bakar ve yatay bir düzlem üzerindedir.
Şekil 2. Sensor API tarafından kullanılan koordinat sistemi (bir otomotiv cihazına göre)
Araç referans çerçevesi, sağ el koordinat sistemidir. Bu nedenle, Z ekseni yukarıyı gösterir.
Referans çerçevesinin Z ekseni yer çekimiyle hizalanır. Bu nedenle, X ekseni ve Y ekseni yataydır. Bu nedenle, Y ekseni her zaman ön aks üzerinden geçmeyebilir.
Temel sensörler
Temel sensör türleri, temsil ettikleri fiziksel sensörlere göre adlandırılır. Bu sensörler, verileri diğer sensörlerden elde eden bileşik sensörlerin aksine tek bir fiziksel sensörden aktarır. Temel sensör türlerine örnek olarak şunlar verilebilir:
SENSOR_TYPE_ACCELEROMETER
SENSOR_TYPE_GYROSCOPE
SENSOR_TYPE_MAGNETOMETER
Ancak temel sensörler, temel fiziksel sensörlerle aynı değildir ve bunlarla karıştırılmamalıdır. Temel sensörden gelen veriler, fiziksel sensörün ham çıkışı değildir. Bunun nedeni, düzeltmelerin (ör. sapma telafisi ve sıcaklık telafisi) uygulanmasıdır.
Örneğin, temel bir sensörün özellikleri aşağıdaki kullanım alanlarında temel fiziksel sensörün özelliklerinden farklı olabilir:
- 1 derece/saniye sapma aralığına sahip bir jiroskop çipi.
- Fabrika kalibrasyonundan sonra sıcaklık telafisi ve sapma telafisi uygulandığında Android sensörünün gerçek sapması azalır ve sapmanın 0,01 derece/sn'nin altında olacağı garanti edilen bir noktaya düşebilir.
- Bu durumda, temel sensörün veri sayfasında 1 derece/saniye yazmasına rağmen Android sensörünün 0, 01 derece/saniyenin altında bir sapmaya sahip olduğunu söyleriz.
- 100 uW güç tüketimine sahip bir barometre.
- Oluşturulan verilerin çipten SoC'ye taşınması gerektiğinden, Android barometre sensöründen veri toplamanın gerçek güç maliyeti çok daha yüksek olabilir (örneğin, 1.000 uW).
- Bu durumda, Android sensörünün güç tüketimi, barometre çipinin uçlarında ölçülen güç tüketimi 100 uW olsa bile 1.000 uW olarak kabul edilir.
- Kalibre edildiğinde 100 uW tüketen ancak kalibre edilirken daha fazla güç tüketen bir manyetometre.
- Kalibrasyon rutini için jiroskopun etkinleştirilmesi gerekebilir. Bu işlem 5.000 uW güç tüketir. Ayrıca, başka bir algoritmanın çalıştırılması da 900 uW güç tüketir.
- Bu durumda, (manyetometre) Android sensörünün maksimum güç tüketiminin 6.000 uW olduğunu söyleyebiliriz.
- Bu durumda, ortalama güç tüketimi daha kullanışlı bir ölçüdür ve HAL aracılığıyla sensörün statik özelliklerinde raporlanır.
İvme ölçer
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER)
uyandırma sensörü olmayan bir sensör döndürür
İvme ölçer sensörü, cihazın üç sensör ekseni boyunca ivmesini bildirir. Ölçülen ivme hem fiziksel ivmeyi (hız değişimi) hem de yer çekimini içerir. Ölçüm, sensors_event_t.acceleration öğesinin x, y ve z alanlarında bildirilir.
Tüm değerler SI birimlerindedir (m/s^2) ve cihazın üç sensör ekseni boyunca yer çekimi kuvveti çıkarılarak ölçülen ivmesini ifade eder.
Örnekler:
- Serbest düşme sırasında (x, y, z) normu 0'a yakın olmalıdır.
- Cihaz bir masanın üzerinde düz dururken sol tarafından sağa doğru itildiğinde x ivme değeri pozitiftir.
- Cihaz bir masanın üzerinde düz durduğunda z ekseni boyunca ivme değeri, cihazın ivmesine (0 m/sn^2) yer çekimi kuvveti (-9,81 m/sn^2) çıkarılarak elde edilen +9,81 alo olur.
- Cihaz bir masanın üzerinde düz dururken gökyüzüne doğru itildiğinde ivme değeri +9,81'den büyük olur. Bu değer, cihazın ivmesine (+A m/sn^2) yer çekimi kuvvetinin (-9,81 m/sn^2) eklenmesiyle elde edilir.
Okumalar şu yöntemlerle kalibre edilir:
- Sıcaklık dengeleme
- Online önyargı kalibrasyonu
- Online ölçek kalibrasyonu
Akış sırasında değerlerde ani değişiklikler olmaması için sapma ve ölçek kalibrasyonu yalnızca sensör devre dışıyken güncellenmelidir.
Ayrıca, ivmeölçer sensors_event_t.acceleration.status
aracılığıyla okumalarının ne kadar doğru olacağını tahmin ettiğini de bildirir. Bu alanın olası değerleri hakkında daha fazla bilgi için
SensorManager
'nin
SENSOR_STATUS_*
sabitlerine bakın.
Ortam sıcaklığı
Raporlama modu: Değişiklik üzerine
getDefaultSensor(SENSOR_TYPE_AMBIENT_TEMPERATURE)
uyandırma sensörü olmayan bir sensör döndürür
Bu sensör, ortam (oda) sıcaklığını santigrat derece cinsinden sağlar.
Manyetik alan sensörü
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD)
uyandırma sensörü olmayan bir sensör döndürür
SENSOR_TYPE_GEOMAGNETIC_FIELD == SENSOR_TYPE_MAGNETIC_FIELD
Manyetik alan sensörü (manyetometre olarak da bilinir), ortamdaki manyetik alanı üç sensör ekseni boyunca ölçülen şekilde bildirir.
Ölçüm, sensors_event_t.magnetic
alanının x, y ve z alanlarında raporlanır ve tüm değerler mikrotesla (uT) cinsindendir.
Manyetometre, okumalarının ne kadar doğru olacağını da sensors_event_t.magnetic.status
aracılığıyla bildirir. Bu alanın olası değerleri hakkında daha fazla bilgi için
SensorManager
'nin
SENSOR_STATUS_*
sabitlerine bakın.
Okumalar şu yöntemlerle kalibre edilir:
- Sıcaklık dengeleme
- Fabrikada (veya online) yumuşak demir kalibrasyonu
- Online sert demir kalibrasyonu
Jiroskop
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_GYROSCOPE)
uyandırma sensörü olmayan bir sensör döndürür
Jiroskop sensörü, cihazın üç sensör ekseni etrafındaki dönüş hızını bildirir.
Dönüş, saat yönünün tersine doğru pozitiftir (sağ el kuralı). Yani x, y veya z ekseninde pozitif bir konumdan orijinde konumlandırılmış bir cihaza bakan bir gözlemci, cihaz saat yönünün tersine dönüyormuş gibi görünüyorsa pozitif dönüş bildirir. Bunun, pozitif dönüşün standart matematiksel tanımı olduğunu ve yuvarlanmanın havacılık tanımıyla uyuşmadığını unutmayın.
Ölçüm, sensors_event_t.gyro
öğesinin x, y ve z alanlarında bildirilir ve tüm değerler saniyede radyan (rad/sn) cinsindendir.
Okumalar şu yöntemlerle kalibre edilir:
- Sıcaklık dengeleme
- Fabrika (veya online) ölçekli tazminat
- Online önyargı kalibrasyonu (sapmayı gidermek için)
Ayrıca jiroskop, sensors_event_t.gyro.status
aracılığıyla okumalarının ne kadar doğru olacağını tahmin ettiğini de bildirir. Bu alanın olası değerleri hakkında daha fazla bilgi için
SensorManager
'nin
SENSOR_STATUS_*
sabitlerine bakın.
Jiroskop, manyetometreler ve ivmeölçerler temel alınarak taklit edilemez. Aksi takdirde, yerel tutarlılığı ve yanıt verme hızı düşer. Normal bir jiroskop çipine dayanmalıdır.
Nabız
Raporlama modu: Değişiklik üzerine
getDefaultSensor(SENSOR_TYPE_HEART_RATE)
uyandırma sensörü olmayan bir sensör döndürür
Nabız sensörü, cihaza dokunan kişinin mevcut nabzını bildirir.
Dakikadaki nabız sayısı (nabız/dk.) olarak ölçülen mevcut nabız sensors_event_t.heart_rate.bpm
, sensörün durumu ise sensors_event_t.heart_rate.status
olarak bildirilir. Bu alanın olası değerleri hakkında daha fazla bilgi için
SensorManager
'nin
SENSOR_STATUS_*
sabitlerine bakın. Özellikle ilk etkinleştirmede, cihazın vücutta olmadığı bilinmiyorsa ilk etkinliğin durum alanı SENSOR_STATUS_UNRELIABLE
olarak ayarlanmalıdır. Bu sensörde değişiklik olduğunda, etkinlikler yalnızca heart_rate.bpm
veya heart_rate.status
son etkinlikten bu yana değiştiğinde oluşturulur. Etkinlikler en hızlı sampling_period
aralıklarla oluşturulur.
Çerçeve, uyumluluğu korumak için sensor_t.requiredPermission
'ı otomatik olarak uygun izinle geçersiz kılar. Çerçeve, Android 16 ve sonraki sürümlerde SENSOR_PERMISSION_READ_HEART_RATE
iznini, Android 15 ve önceki sürümlerde ise SENSOR_PERMISSION_BODY_SENSORS
iznini kullanır.
Açık
Raporlama modu: Değişiklikte
getDefaultSensor(SENSOR_TYPE_LIGHT)
uyandırma sensörü olmayan bir sensör döndürür
Işık sensörü, mevcut aydınlatmayı SI lüks birimleriyle bildirir.
Ölçüm sensors_event_t.light
içinde raporlanır.
Yakınlık
Raporlama modu: Değişiklikte
Genellikle uyandırma sensörü olarak tanımlanır.
getDefaultSensor(SENSOR_TYPE_PROXIMITY)
uyanma sensörünü döndürür
Yakınlık sensörü, sensör ile en yakın görünür yüzey arasındaki mesafeyi bildirir.
Android 4.4'e kadar olan sürümlerde yakınlık sensörleri her zaman uyandırma sensörleriydi ve yakınlıkta bir değişiklik algıladığında SoC'yi uyandırıyordu. Android 4.4'ten sonra, telefon görüşmesi yaparken ekranı açıp kapatmak için kullanılan sensör olduğundan bu sensörün uyandırma sürümünü önce uygulamanızı öneririz.
Ölçüm, sensors_event_t.distance
içinde santimetre cinsinden bildirilir. Bazı yakınlık sensörlerinin yalnızca ikili "yakın" veya "uzak" ölçümünü desteklediğini unutmayın.
Bu durumda sensör, sensor_t.maxRange
değerini "uzak" durumunda, sensor_t.maxRange
değerinden daha düşük bir değeri ise "yakın" durumunda bildirir.
Basınç
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_PRESSURE)
uyandırma sensörü olmayan bir sensör döndürür
Bir basınç sensörü (barometre olarak da bilinir), atmosferik basıncı hektopaskal (hPa) cinsinden bildirir.
Okumalar,
- Sıcaklık dengeleme
- Fabrika önyargısı kalibrasyonu
- Fabrika ölçeği kalibrasyonu
Barometre, yükseklik değişikliklerini tahmin etmek için sıklıkla kullanılır. Mutlak yüksekliği tahmin etmek için deniz seviyesi basıncı (hava durumuna göre değişir) referans olarak kullanılmalıdır.
Bağıl nem
Raporlama modu: Değişiklikte
getDefaultSensor(SENSOR_TYPE_RELATIVE_HUMIDITY)
uyandırma sensörü olmayan bir sensör döndürür
Bağıl nem sensörü, bağıl ortam havası nemini ölçer ve yüzde olarak bir değer döndürür.
Bileşik sensör türleri
Birleşik sensör, bir veya daha fazla fiziksel sensörden gelen verileri işleyerek ve/veya birleştirerek veri oluşturur. (Temel sensör olmayan tüm sensörlere bileşik sensör adı verilir.) Bileşik sensörlere örnek olarak şunlar verilebilir:
- Genellikle bir ivmeölçere dayalı olan ancak güç tüketimi ve doğruluk kabul edilebilir düzeyde olduğu takdirde diğer sensörlere de dayalı olabilen adım algılayıcı ve önemli hareket.
- İvme ölçer ve jiroskopa dayalı oyun döndürme vektörü.
- Kalibre edilmemiş jiroskop: Jiroskop taban sensörüne benzer ancak sapma kalibrasyonu ölçümde düzeltilmek yerine ayrı olarak bildirilir.
Temel sensörlerde olduğu gibi, bileşik sensörlerin özellikleri de nihai verilerinin özelliklerinden gelir. Örneğin, bir oyun dönüş vektörünün güç tüketimi muhtemelen ivme ölçer çipinin, jiroskop çipinin, verileri işleyen çipin ve verileri taşıyan veri yollarının güç tüketimlerinin toplamına eşittir. Başka bir örnek olarak, bir oyunun dönüş vektörünün kayması, kalibrasyon algoritmasının kalitesine olduğu kadar fiziksel sensör özelliklerine de bağlıdır.
Aşağıdaki tabloda, kullanılabilen bileşik sensör türleri listelenmiştir. Her bileşik sensör, bir veya daha fazla fiziksel sensörden gelen verilere dayanır. Sonuçları tahmin etmek için diğer temel fiziksel sensörleri seçmekten kaçının. Bu sensörler, kötü bir kullanıcı deneyimi sunar.
Sensör türü | Kategori | Temel fiziksel sensörler | Raporlama modu |
---|---|---|---|
Attitude |
İvme ölçer, jiroskop, manyetometre KULLANILMAMALIDIR. |
Sürekli |
|
Attitude |
İvme ölçer, manyetometre, jiroskop KULLANILMAMALIDIR. |
Sürekli |
|
Göz atma hareketi |
Etkileşim |
Tanımsız |
Tek görevli |
Attitude |
İvme ölçer, jiroskop (varsa) veya manyetometre (jiroskop yoksa) |
Sürekli |
|
Kalibre edilmemiş |
Jiroskop |
Sürekli |
|
Etkinlik |
İvme ölçer, jiroskop (varsa) veya manyetometre (jiroskop yoksa) |
Sürekli |
|
Kalibre edilmemiş |
Manyetometre |
Sürekli |
|
Yön (kullanımdan kaldırıldı) |
Attitude |
İvme ölçer, manyetometre, jiroskop (varsa) |
Sürekli |
Etkileşim |
Tanımsız |
Tek görevli |
|
Attitude |
İvme ölçer, manyetometre, jiroskop (varsa) |
Sürekli |
|
Etkinlik |
İvme ölçer (veya çok düşük güç tükettiği sürece başka bir sensör) |
Tek görevli |
|
Etkinlik |
İvme ölçer |
Değişiklik yapıldığında |
|
Etkinlik |
İvme ölçer |
Özel |
|
Etkinlik |
İvme ölçer |
Özel |
|
Etkileşim |
Tanımsız |
Tek görevli |
= Düşük güç sensörü
Etkinlik bileşik sensörleri
Doğrusal hızlanma
Temel fiziksel sensörler: İvme ölçer ve (varsa) jiroskop (veya jiroskop yoksa manyetometre)
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_LINEAR_ACCELERATION)
uyandırma sensörü olmayan bir sensör döndürür
Doğrusal ivme sensörü, yer çekimi hariç olmak üzere cihazın sensör çerçevesindeki doğrusal ivmesini bildirir.
Çıkış, kavramsal olarak ivme ölçerin çıkışından yerçekimi sensörünün çıkışının çıkarılmasıyla elde edilir. sensors_event_t.acceleration
'nın x, y ve z alanlarında m/sn^2 olarak bildirilir.
Cihaz hareketsizken tüm eksenlerdeki okumalar 0'a yakın olmalıdır.
Cihazda jiroskop varsa doğrusal ivme sensörü giriş olarak jiroskop ve ivme ölçeri kullanmalıdır.
Cihazda jiroskop yoksa doğrusal ivme sensörü giriş olarak ivme ölçeri ve manyetometreyi kullanmalıdır.
Önemli hareket
Temel fiziksel sensör: İvme ölçer (veya düşük güç tükettiği sürece başka bir sensör)
Raporlama modu: Tek seferlik
Düşük güç
Bu sensörün yalnızca uyandırma sürümünü uygulayın.
getDefaultSensor(SENSOR_TYPE_SIGNIFICANT_MOTION)
uyanma sensörünü döndürür
Önemli hareket algılayıcı, önemli bir hareket algıladığında tetiklenir: Kullanıcının konumunda değişikliğe yol açabilecek bir hareket.
Bu tür önemli önerilere örnek olarak şunlar verilebilir:
- Yürüyüş veya bisiklet
- Hareket eden bir araba, otobüs veya trende oturma
Önemli hareketi tetiklemeyen durumlara örnekler:
- Telefon cebinizdeyken hareket etmemek
- Telefon masanın üzerinde ve yakındaki trafik veya çamaşır makinesi nedeniyle masa biraz titriyor.
Ana hatlarıyla, önemli hareket dedektörü, konum belirleme işleminin güç tüketimini azaltmak için kullanılır. Yerelleştirme algoritmaları, cihazın statik olduğunu algıladığında düşük güç moduna geçebilir. Bu modda, kullanıcı konum değiştirdiğinde cihazı uyandırmak için önemli hareketlere ihtiyaç duyulur.
Bu sensör düşük güç tüketmelidir. Bu ayar, güç tüketimiyle ilgili bir dengelemeye yol açar ve bu da az sayıda yanlış negatif sonuçlanabilir. Bu değişiklik birkaç nedenden dolayı yapılıyor:
- Bu sensörün amacı güç tasarrufu sağlamaktır.
- Kullanıcı hareket etmediğinde bir etkinliğin tetiklenmesi (yanlış pozitif) güç açısından maliyetli olduğundan bu durumdan kaçınılmalıdır.
- Kullanıcı hareket ederken bir etkinliğin tetiklenmemesi (yanlış negatif), tekrarlı olarak yapılmadığı sürece kabul edilebilir. Kullanıcı 10 saniye boyunca yürüdüyse bu 10 saniye içinde bir etkinliğin tetiklenmemesi kabul edilemez.
Her sensör etkinliği, sensors_event_t.data[0]
içinde 1
bildirir.
Adım detektörü
Temel fiziksel sensör: İvme ölçer (+ düşük güç tüketimi olduğu sürece muhtemelen diğerleri)
Raporlama modu: Özel (Atılan her adım için bir etkinlik)
Düşük güç
getDefaultSensor(SENSOR_TYPE_STEP_DETECTOR)
uyandırma sensörü olmayan bir sensör döndürür
Adım algılayıcı, kullanıcı her adım attığında bir etkinlik oluşturur.
Etkinliğin zaman damgası sensors_event_t.timestamp
, ayağın yere değdiği ve hızlanmada yüksek bir varyasyonun oluştuğu zamana karşılık gelir.
Adım sayacına kıyasla adım algılayıcının daha düşük bir gecikmesi (iki saniyeden az) olmalıdır. Adım algılayıcı ve adım sayacı, kullanıcının yürüdüğünü, koştuğunu ve merdiven çıktığını algılar. Kullanıcı bisiklete binerken, araba kullanırken veya başka araçlardayken tetiklenmemelidir.
Bu sensör düşük güç tüketmelidir. Yani adım algılama donanım üzerinde yapılamıyorsa bu sensör tanımlanmamalıdır. Özellikle adım algılayıcı etkinleştirildiğinde ve ivmeölçer etkinleştirilmediğinde yalnızca adımlar kesintileri tetiklemelidir (her ivmeölçer okuması değil).
sampling_period_ns
, adım dedektörlerini etkilemez.
Her sensör etkinliği, sensors_event_t.data[0]
içinde 1
bildirir.
Adım sayacı
Temel fiziksel sensör: İvme ölçer (+ düşük güç tüketimi olduğu sürece muhtemelen diğerleri)
Raporlama modu: Değişiklikte
Düşük güç
getDefaultSensor(SENSOR_TYPE_STEP_COUNTER)
uyandırma sensörü olmayan bir sensör döndürür
Adım sayacı, etkinleştirildikten sonra son yeniden başlatmadan bu yana kullanıcının attığı adım sayısını bildirir.
Ölçüm, uint64_t
sensors_event_t.step_counter
olarak raporlanır ve yalnızca sistem yeniden başlatıldığında sıfırlanır.
Etkinliğin zaman damgası, söz konusu etkinlik için son adımın atıldığı zamana ayarlanır.
Adım zamanının anlamı için Adım algılayıcı sensör türüne bakın.
Adım sayacı, adım dedektörüne kıyasla daha yüksek bir gecikmeye (10 saniyeye kadar) sahip olabilir. Bu gecikme sayesinde sensör yüksek doğruluk oranına sahiptir. Tam gün ölçümden sonraki adım sayısı, gerçek adım sayısının% 10'u içinde olmalıdır. Adım dedektörü ve adım sayacı, kullanıcının yürüdüğünü, koştuğunu ve merdiven çıktığını algılar. Kullanıcı bisiklete binerken, araba kullanırken veya başka araçlardayken tetiklenmemelidir.
Donanım, dahili adım sayısının hiçbir zaman taşmamasını sağlamalıdır. Donanımın dahili sayacının minimum boyutu 16 bit olmalıdır. Yaklaşan taşma durumunda (en fazla her ~2^16 adımda bir) sürücünün sayaç bakımını yapabilmesi için SoC uyandırılabilir.
Etkileşim bölümünde belirtildiği gibi, bu sensör çalışırken diğer sensörleri, özellikle de kullanımda olabilecek ivmeölçeri kesintiye uğratmamalıdır.
Belirli bir cihaz bu çalışma modlarını destekleyemiyorsa bu sensör türü HAL tarafından bildirilmemelidir. Yani, bu sensörün HAL'de "taklit edilmesi" kabul edilemez.
Bu sensör düşük güç tüketmelidir. Yani adım algılama donanım üzerinde yapılamıyorsa bu sensör tanımlanmamalıdır. Özellikle adım sayacı etkinleştirildiğinde ve ivme ölçer etkinleştirilmediğinde, kesmeleri yalnızca adımlar tetiklemelidir (ivme ölçer verileri değil).
Eğim algılayıcı
Temel fiziksel sensör: İvme ölçer (+ düşük güç tüketimi olduğu sürece muhtemelen diğerleri)
Raporlama modu: Özel
Düşük güç
Bu sensörün yalnızca uyandırma sürümünü uygulayın.
getDefaultSensor(SENSOR_TYPE_TILT_DETECTOR)
uyanma sensörünü döndürür
Eğilme algılayıcı, eğilme etkinliği her algılandığında bir etkinlik oluşturur.
Eğme etkinliği, sensörün etkinleştirilmesinden veya son etkinliğinden bu yana 2 saniyelik pencere ortalaması yer çekiminin en az 35 derece değişmesiyle tanımlanır. Algoritma şu şekildedir:
reference_estimated_gravity
= Etkinleştirmeden sonraki ilk saniyede ivmeölçer ölçümlerinin ortalaması veya son eğme etkinliği oluşturulduğunda tahmini yerçekimi.current_estimated_gravity
= Son 2 saniyedeki ivmeölçer ölçümlerinin ortalaması.- Aşağıdaki durumlarda tetiklenir:
angle(reference_estimated_gravity, current_estimated_gravity) > 35 degrees
Telefonun yönü değişmeden gerçekleşen büyük hızlanmalar eğim etkinliğini tetiklememelidir. Örneğin, ortalama ivme açısı 35 dereceden fazla değişse bile araba sürerken keskin bir dönüş veya güçlü bir hızlanma, eğilme etkinliğini tetiklememelidir.
Genellikle bu sensör yalnızca bir ivmeölçerin yardımıyla uygulanır. Güç tüketimini önemli ölçüde artırmayan diğer sensörler de kullanılabilir. Bu, SoC'nin askıya alma moduna girmesine olanak tanıması gereken düşük güç tüketen bir sensördür. Bu sensörü HAL'de taklit etmeyin. Her sensör etkinliği, 1
cinsinden sensors_event_t.data[0]
değerini bildirir.
Tutum birleşik sensörleri
Dönüş vektörü
Temel fiziksel sensörler: İvme ölçer, manyetometre ve jiroskop
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_ROTATION_VECTOR)
uyanma sensörü olmayan bir değer döndürür.
Dönüş vektörü sensörü, cihazın Doğu-Kuzey-Yukarı koordinat çerçevesine göre yönünü bildirir. Genellikle ivme ölçer, jiroskop ve manyetometre okumalarının entegrasyonuyla elde edilir. Doğu-Kuzey-Yukarı koordinat sistemi, şu şekilde tanımlanan doğrudan bir ortonormal temeldir:
- X doğuya bakar ve yere teğettir.
- Y noktası kuzeyi gösterir ve yere teğettir.
- Z, gökyüzüne doğru bakar ve yere diktir.
Telefonun yönü, Doğu-Kuzey-Yukarı koordinatlarını telefonun koordinatlarıyla hizalamak için gereken dönüşle gösterilir. Yani, döndürme işlemini dünya çerçevesine (X,Y,Z) uygulamak, bunları telefon koordinatlarıyla (x,y,z) hizalar.
Dönme, referans (Doğu-Kuzey-Yukarı hizalı) cihaz yönünden mevcut cihaz yönüne geçmek için telefonun bir eksen rot_axis
etrafında teta açısıyla döndürülmesi olarak görülebilir. Dönüş, birim kuaterniyonun dört birimsiz x, y, z, w bileşeni olarak kodlanır:
sensors_event_t.data[0] = rot_axis.x*sin(theta/2)
sensors_event_t.data[1] = rot_axis.y*sin(theta/2)
sensors_event_t.data[2] = rot_axis.z*sin(theta/2)
sensors_event_t.data[3] = cos(theta/2)
Nerede:
rot_axis
öğesinin x, y ve z alanları, dönme eksenini temsil eden bir birim uzunluklu vektörün Doğu-Kuzey-Yukarı koordinatlarıdır.theta
, dönme açısıdır.
Dördey değeri birim dördey değeridir: Normu 1
olmalıdır.
Bunun sağlanmaması, istemcinin düzensiz davranışına neden olur.
Ayrıca bu sensör, tahmini bir yön doğruluğu bildirir:
sensors_event_t.data[4] = estimated_accuracy
(radyan cinsinden)
Başlık hatası, zamanın% 95'inden daha az olmalıdır.estimated_accuracy
Bu sensör, ana yön değişikliği girişi olarak jiroskop kullanmalıdır.
Bu sensör, jiroskop kaymasını telafi etmek için ivme ölçer ve manyetometre girişini de kullanır ve yalnızca ivme ölçer ve manyetometre kullanılarak uygulanamaz.
Oyun döndürme vektörü
Temel fiziksel sensörler: İvme ölçer ve jiroskop (manyetometre yok)
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_GAME_ROTATION_VECTOR)
uyandırma sensörü olmayan bir sensör döndürür
Oyun rotasyon vektörü sensörü, rotasyon vektörü sensörüne benzer ancak jeomanyetik alanı kullanmaz. Bu nedenle Y ekseni kuzeyi değil, başka bir referansı gösterir. Bu referansın, jiroskopun Z ekseni etrafındaki kaymasıyla aynı büyüklük sırasına göre kaymasına izin verilir.
sensors_event_t.data[0-3]
'ı ayarlama hakkında ayrıntılı bilgi için Dönüş vektörü sensörüne bakın. Bu sensör, tahmini yön doğruluğunu bildirmiyor:
sensors_event_t.data[4]
ayrılmıştır ve 0
olarak ayarlanmalıdır.
İdeal durumda, döndürülüp aynı gerçek dünya yönüne geri getirilen bir telefon aynı oyun döndürme vektörünü bildirmelidir.
Bu sensör, jiroskop ve ivme ölçere dayanmalıdır. Jiroskop sapmasının tahmini yoluyla dolaylı olarak kullanılmasının yanı sıra, giriş olarak manyetometre kullanamaz.
Yerçekimi
Temel fiziksel sensörler: İvme ölçer ve (varsa) jiroskop (veya jiroskop yoksa manyetometre)
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_GRAVITY)
uyandırma sensörü olmayan bir sensör döndürür
Yer çekimi sensörü, cihazın koordinatlarında yer çekiminin yönünü ve büyüklüğünü bildirir.
Yer çekimi vektörü bileşenleri, sensors_event_t.acceleration
öğesinin x, y ve z alanlarında m/sn^2 cinsinden bildirilir.
Cihaz dinlenirken yerçekimi sensörünün çıkışı, ivme ölçerin çıkışıyla aynı olmalıdır. Dünya'da bu değer yaklaşık 9, 8 m/s^2'dir.
Cihazda jiroskop varsa yer çekimi sensörü giriş olarak jiroskop ve ivme ölçeri kullanmalıdır.
Cihazda jiroskop yoksa yerçekimi sensörü giriş olarak ivme ölçeri ve manyetometreyi kullanmalıdır.
Jeomanyetik dönme vektörü
Temel fiziksel sensörler: İvme ölçer ve manyetometre (jiroskop yok)
Raporlama modu: Sürekli
Düşük güç
getDefaultSensor(SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR)
uyandırma sensörü olmayan bir sensör döndürür
Jeomanyetik dönme vektörü, dönme vektörü sensörüne benzer ancak manyetometre kullanır ve jiroskop içermez.
Bu sensör, manyetometre tabanlı olmalıdır. Jiroskop kullanılarak uygulanamaz ve bu sensör tarafından jiroskop girişi kullanılamaz.
sensors_event_t.data[0-4]
'ı ayarlama hakkında ayrıntılı bilgi için Dönüş vektörü sensörüne bakın.
Dönüş vektörü sensöründe olduğu gibi, yön hatası da% 95 oranında tahmini doğruluk değerinden (sensors_event_t.data[4]
) küçük olmalıdır.
Bu sensörün düşük güç tüketmesi gerektiğinden donanımda uygulanması gerekir.
Yön (desteği sonlandırıldı)
Temel fiziksel sensörler: İvme ölçer, manyetometre ve (varsa) jiroskop
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_ORIENTATION)
uyandırma sensörü olmayan bir sensör döndürür
Not: Bu, Android SDK'da desteği sonlandırılmış eski bir sensör türüdür. Daha net tanımlanmış olan dönme vektörü sensörüyle değiştirildi. Mümkün olduğunda yön sensörü yerine dönme vektörü sensörünü kullanın.
Yön sensörü, cihazın yönünü bildirir. Ölçümler, sensors_event_t.orientation
x, y ve z alanlarında derece cinsinden raporlanır:
sensors_event_t.orientation.x
: Azimut, Z ekseni etrafında manyetik kuzey yönü ile Y ekseni arasındaki açıdır (0<=azimuth<360
). 0=Kuzey, 90=Doğu, 180=Güney, 270=Batı.sensors_event_t.orientation.y
: eğim, X ekseni etrafında dönme (-180<=pitch<=180
), Z ekseni Y eksenine doğru hareket ettiğinde pozitif değerlerle.sensors_event_t.orientation.z
: Y ekseni etrafında dönme, yuvarlanma (-90<=roll<=90
), X ekseni Z eksenine doğru hareket ettiğinde pozitif değerlerle.
Tarihi nedenlerden dolayı yuvarlanma açısının saat yönünde pozitif olduğunu lütfen unutmayın. (Matematiksel olarak konuşursak saat yönünün tersine doğru pozitif olmalıdır):
3.Şekil Cihaza göre yön
Bu tanım, havacılıkta kullanılan sapma, eğim ve yuvarlanmadan farklıdır. Havacılıkta X ekseni, uçağın uzun kenarı boyunca (kuyruktan buruna) uzanır.
Yön sensörü, okumalarının ne kadar doğru olacağını sensors_event_t.orientation.status
aracılığıyla da bildirir. Bu alanın olası değerleri hakkında daha fazla bilgi için
SensorManager
'nın
SENSOR_STATUS_*
sabitlerine bakın.
Kalibre edilmemiş sensörler
Kalibre edilmemiş sensörler daha fazla ham sonuç sağlar ve bir miktar sapma içerebilir ancak kalibrasyon yoluyla uygulanan düzeltmelerden kaynaklanan daha az "atlama" da içerir. Bazı uygulamalar, daha sorunsuz ve güvenilir oldukları için bu kalibre edilmemiş sonuçları tercih edebilir. Örneğin, bir uygulama kendi sensör füzyonunu yapmaya çalışıyorsa kalibrasyonların eklenmesi sonuçları bozabilir.
İvme ölçer kalibre edilmemiş
Temel fiziksel sensör: İvmeölçer
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED)
uyandırma sensörü olmayan bir sensör döndürür
Kalibre edilmemiş bir ivme ölçer sensörü, cihazın üç sensör ekseni boyunca ivmesini herhangi bir sapma düzeltmesi olmadan (kalibre edilmemiş ölçümlere fabrika sapması ve sıcaklık telafisi uygulanır) bir sapma tahminiyle birlikte bildirir.
Tüm değerler SI birimlerindedir (m/s^2) ve sensors_event_t.uncalibrated_accelerometer
alanlarında bildirilir:
x_uncalib
: X ekseni boyunca ivme (bias telafisi olmadan)y_uncalib
: Y ekseni boyunca ivme (sapma telafisi olmadan)z_uncalib
: Z ekseni boyunca ivme (sapma telafisi olmadan)x_bias
: X ekseni boyunca tahmini önyargıy_bias
: Y ekseni boyunca tahmini önyargız_bias
: Z ekseni boyunca tahmini önyargı
Jiroskop kalibre edilmemiş
Temel fiziksel sensör: Jiroskop
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_UNCALIBRATED)
uyandırma sensörü olmayan bir sensör döndürür
Kalibre edilmemiş bir jiroskop, sensör eksenleri etrafındaki dönüş hızını, bu eksenlere sapma telafisi uygulamadan ve sapma tahminiyle birlikte bildirir. Tüm değerler radyan/saniye cinsindendir ve sensors_event_t.uncalibrated_gyro
alanlarında raporlanır:
x_uncalib
: X ekseni etrafında açısal hız (sapma telafisi olmadan)y_uncalib
: Y ekseni etrafında açısal hız (sürüklenme telafisi olmadan)z_uncalib
: Z ekseni etrafında açısal hız (sürüklenme telafisi olmadan)x_bias
: X ekseni etrafındaki tahmini sapmay_bias
: Y ekseni etrafındaki tahmini sapmaz_bias
: Z ekseni etrafındaki tahmini sapma
Kavramsal olarak, kalibre edilmemiş ölçüm, kalibre edilmiş ölçüm ile önyargı tahmininin toplamıdır: _uncalibrated = _calibrated + _bias
.
x_bias
, y_bias
ve z_bias
değerlerinin, önyargı tahmini değişir değişmez artması ve geri kalan sürede sabit kalması beklenir.
Kullanılan koordinat sistemiyle ilgili ayrıntılar için jiroskop sensörünün tanımına bakın.
Ölçümlere fabrika kalibrasyonu ve sıcaklık telafisi uygulanmalıdır. Ayrıca, x_bias
, y_bias
ve z_bias
içinde makul tahminler raporlanabilmesi için jiroskop kayması tahmini uygulanmalıdır. Uygulama, sapmayı tahmin edemiyorsa bu sensör uygulanmamalıdır.
Bu sensör varsa ilgili jiroskop sensörü de olmalı ve her iki sensör de aynı sensor_t.name
ve sensor_t.vendor
değerlerini paylaşmalıdır.
Manyetik alan kalibre edilmemiş
Temel fiziksel sensör: Manyetometre
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED)
uyandırma sensörü olmayan bir sensör döndürür
Kalibre edilmemiş bir manyetik alan sensörü, ortamdaki manyetik alanı ve sert demir kalibrasyon tahminini birlikte bildirir. Tüm değerler mikrotesla (uT) cinsindendir ve sensors_event_t.uncalibrated_magnetic
alanlarında raporlanır:
x_uncalib
: manyetik alan (sert demir telafisi olmadan) X ekseni boyuncay_uncalib
: Y ekseni boyunca manyetik alan (sert demir telafisi olmadan)z_uncalib
: Z ekseni boyunca manyetik alan (sert demir telafisi olmadan)x_bias
: X ekseni boyunca tahmini sabit demir sapmasıy_bias
: Y ekseni boyunca tahmini sabit demir önyargısız_bias
: Z ekseni boyunca tahmini sabit demir önyargısı
Kavramsal olarak, kalibre edilmemiş ölçüm, kalibre edilmiş ölçüm ile önyargı tahmininin toplamıdır: _uncalibrated = _calibrated + _bias
.
Kalibre edilmemiş manyetometre, daha üst düzey algoritmaların kötü sert demir tahminini işlemesine olanak tanır. x_bias
, y_bias
ve z_bias
değerlerinin, sert demir tahmini değiştiği anda yükselmesi ve geri kalan sürede sabit kalması beklenir.
Ölçümlere yumuşak demir kalibrasyonu ve sıcaklık dengelemesi uygulanmalıdır. Ayrıca, x_bias
, y_bias
ve z_bias
içinde makul tahminler raporlanabilmesi için sert demir tahmini uygulanmalıdır. Uygulama, sapmayı tahmin edemiyorsa bu sensör uygulanmamalıdır.
Bu sensör varsa ilgili manyetik alan sensörü de olmalı ve her iki sensör de aynı sensor_t.name
ve sensor_t.vendor
değerlerini paylaşmalıdır.
Menteşe açısı
Raporlama modu: Değişiklikte
getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE)
uyandırma sensörünü döndürür
Menteşe açısı sensörü, cihazın iki ayrılmaz parçası arasındaki açıyı derece cinsinden ölçer. Bu sensör türüyle ölçülen bir menteşenin hareketi, kullanıcının cihazla etkileşim kurma şeklini değiştirmesi beklenir. Örneğin, ekranı açarak veya göstererek.
Etkileşim için birleşik sensörler
Bazı sensörler çoğunlukla kullanıcıyla etkileşimleri algılamak için kullanılır. Bu sensörlerin nasıl uygulanması gerektiğini tanımlamıyoruz ancak sensörlerin düşük güçte olması gerekir ve kullanıcı deneyimi açısından kalitelerini doğrulamak cihaz üreticisinin sorumluluğundadır.
Uyandırma hareketi
Temel fiziksel sensörler: Tanımsız (düşük güç kullanan herhangi bir şey)
Raporlama modu: Tek seferlik
Düşük güç
Bu sensörün yalnızca uyandırma sürümünü uygulayın.
getDefaultSensor(SENSOR_TYPE_WAKE_GESTURE)
uyanma sensörünü döndürür
Uyandırma hareketi sensörü, cihaza özgü bir harekete göre cihazın uyandırılmasını sağlar. Bu sensör tetiklendiğinde cihaz, güç düğmesine basılmış gibi davranarak ekranı açar. Bu davranış (sensör tetiklendiğinde ekranın açılması) kullanıcı tarafından cihaz ayarlarında devre dışı bırakılabilir. Ayarlardaki değişiklikler sensörün davranışını etkilemez. Yalnızca çerçeve tetiklendiğinde ekranın açılıp açılmayacağını etkiler. Algılanacak gerçek hareket belirtilmez ve cihazın üreticisi tarafından seçilebilir.
Bu sensör, 7/24 etkinleştirilebileceği için düşük güç tüketmelidir.
Her sensör etkinliği, sensors_event_t.data[0]
içinde 1
bildirir.
Alma hareketi
Temel fiziksel sensörler: Tanımsız (düşük güç kullanan herhangi bir şey)
Raporlama modu: Tek seferlik
Düşük güç
Bu sensörün yalnızca uyandırma sürümünü uygulayın.
getDefaultSensor(SENSOR_TYPE_PICK_UP_GESTURE)
uyanma sensörünü döndürür
Cihaz, daha önce nerede olursa olsun (masa, cep, çanta) elinize alındığında, elinize alma hareketi sensörü tetiklenir.
Her sensör etkinliği, sensors_event_t.data[0]
içinde 1
bildirir.
Bir Bakışta hareketi
Temel fiziksel sensörler: Tanımsız (düşük güç kullanan herhangi bir şey)
Raporlama modu: Tek seferlik
Düşük güç
Bu sensörün yalnızca uyandırma sürümünü uygulayın.
getDefaultSensor(SENSOR_TYPE_GLANCE_GESTURE)
uyanma sensörünü döndürür
Bir bakış hareketi sensörü, ekranın kısa süreliğine açılmasını sağlayarak kullanıcının belirli bir harekete göre ekrandaki içeriğe göz atmasına olanak tanır. Bu sensör tetiklendiğinde cihaz, kullanıcının cihaz etkileşimli olmayan bir durumda (uyku) kilitliyken bildirimlere veya diğer içeriklere göz atmasına olanak tanımak için ekranı anlık olarak açar, ardından ekran tekrar kapanır. Bu davranış (sensör tetiklendiğinde ekranı kısa süreliğine açma) kullanıcı tarafından cihaz ayarlarından devre dışı bırakılabilir. Ayarlardaki değişiklikler sensörün davranışını etkilemez. Yalnızca tetiklendiğinde ekranın kısa süreliğine açılıp açılmayacağını etkiler. Algılanacak gerçek hareket belirtilmez ve cihazın üreticisi tarafından seçilebilir.
Bu sensör, 7/24 etkinleştirilebileceği için düşük güç tüketmelidir.
Her sensör etkinliği, 1
cinsinden sensors_event_t.data[0]
değerini bildirir.
Sınırlı eksenli IMU sensörleri
Android 13'ten itibaren kullanılabilir. Sınırlı eksenli IMU sensörleri, üç eksenin (x, y, z) tamamının kullanılamadığı kullanım alanlarını destekleyen sensörlerdir. Android'deki standart IMU türleri (ör.
SENSOR_TYPE_ACCELEROMETER
ve
SENSOR_TYPE_GYROSCOPE
),
üç eksenin de desteklendiğini varsayar. Ancak tüm form faktörleri ve cihazlar 3 eksenli ivmeölçerleri ve 3 eksenli jiroskopları desteklemez.
İvme ölçer sınırlı eksenleri
Temel fiziksel sensörler: İvme ölçer
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES)
uyandırma sensörü olmayan bir sensör döndürür
Sınırlı eksenli ivme ölçer sensörü TYPE_ACCELEROMETER
ile eşdeğerdir ancak bir veya iki eksenin desteklenmediği durumları destekler.
Sensör tarafından bildirilen son üç sensör etkinliği değeri, x, y ve z eksenleri için ivme değerinin desteklenip desteklenmediğini gösterir. 1.0
değeri, eksenin desteklendiğini, 0
değeri ise desteklenmediğini gösterir. Cihaz üreticileri, desteklenen eksenleri derleme zamanında tanımlar ve değerler çalışma zamanında değişmez.
Cihaz üreticileri, kullanılmayan eksenlerin ivme değerlerini tanımlanmamış değerler yerine 0
olarak ayarlamalıdır.
Jiroskop sınırlı eksenleri
Temel fiziksel sensörler: Jiroskop
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES)
uyandırma sensörü olmayan bir sensör döndürür
Sınırlı eksenli bir jiroskop sensörü TYPE_GYROSCOPE
ile eşdeğerdir ancak bir veya iki eksenin desteklenmediği durumları destekler.
Sensör tarafından bildirilen son üç sensör etkinliği değeri, x, y ve z eksenleri için açısal hız değerinin desteklenip desteklenmediğini gösterir. 1.0
değeri, eksenin desteklendiğini, 0
değeri ise desteklenmediğini gösterir. Cihaz üreticileri, desteklenen eksenleri derleme zamanında tanımlar ve değerler çalışma zamanında değişmez.
Cihaz üreticileri, kullanılmayan eksenlerin açısal hız değerlerini 0
olarak ayarlamalıdır.
İvmeölçer sınırlı eksenler kalibre edilmemiş
Temel fiziksel sensörler: İvme ölçer
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED)
uyandırma sensörü olmayan bir sensör döndürür
Eksenleri sınırlı bir ivme ölçer, kalibre edilmemiş sensör TYPE_ACCELEROMETER_UNCALIBRATED
ile eşdeğerdir ancak bir veya iki eksenin desteklenmediği durumları destekler.
Sensör tarafından bildirilen son üç sensör etkinliği değeri, x, y ve z eksenleri için ivme ve sapma değerlerinin desteklenip desteklenmediğini gösterir. 1.0
değeri, eksenin desteklendiğini, 0
değeri ise desteklenmediğini gösterir. Cihaz üreticileri, desteklenen eksenleri derleme zamanında tanımlar ve değerler çalışma zamanında değişmez.
Cihaz üreticileri, kullanılmayan eksenlerin ivme ve önyargı değerlerini 0
olarak ayarlamalıdır.
Jiroskop sınırlı eksenler kalibre edilmemiş
Temel fiziksel sensörler: Jiroskop
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED)
uyandırma sensörü olmayan bir sensör döndürür
Sınırlı eksenli, kalibre edilmemiş bir jiroskop sensörü TYPE_GYROSCOPE_UNCALIBRATED
ile eşdeğerdir ancak bir veya iki eksenin desteklenmediği durumları destekler.
Sensör tarafından bildirilen son üç sensör etkinliği değeri, x, y ve z eksenleri için açısal hız ve kayma değerlerinin desteklenip desteklenmediğini gösterir. 1.0
değeri, eksenin desteklendiğini, 0
değeri ise desteklenmediğini gösterir. Cihaz üreticileri, desteklenen eksenleri derleme zamanında tanımlar ve değerler çalışma zamanında değişmez.
Cihaz üreticileri, kullanılmayan eksenlerin açısal hız ve sapma değerlerini 0
olarak ayarlamalıdır.
Birleşik sınırlı eksenli IMU
Temel fiziksel sensörler: 3 eksenli ivme ölçer, 3 eksenli jiroskop, 3 eksenli ivme ölçer (kalibre edilmemiş) ve 3 eksenli jiroskop (kalibre edilmemiş) sensörlerinin herhangi bir kombinasyonu.
Raporlama modu: Sürekli
Sınırlı eksenli bir bileşik IMU sensörü, sınırlı eksenli bir IMU sensörüne eşdeğerdir ancak HAL'de desteklenmek yerine 3 eksenli sensör verilerini eşdeğer sınırlı eksenli varyantlara dönüştürür. Bu bileşik sensörler yalnızca otomotiv cihazlarında etkinleştirilir.
Aşağıdaki tabloda, standart 3 eksenli bir ivmeölçerden bileşik sınırlı eksenli bir ivmeölçere dönüştürme örneği gösterilmektedir.
SENSOR_TYPE_ACCELEROMETER için SensorEvent Değerleri | Örnek SENSOR_TYPE_ACCELEROMETER SensorEvent | Composite SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES SensorEvent |
---|---|---|
values[0] | -0,065 |
-0,065 |
values[1] | 0,078 |
0,078 |
values[2] | 9.808 |
9.808 |
values[3] | Yok |
1,0 |
values[4] | Yok |
1,0 |
values[5] | Yok |
1,0 |
Otomotiv sensörleri
Otomotiv kullanım alanlarını destekleyen sensörler.
Başlık
Temel fiziksel sensörler: GPS, manyetometre, ivme ölçer ve jiroskopun herhangi bir kombinasyonu.
Raporlama modu: Sürekli
getDefaultSensor(SENSOR_TYPE_HEADING)
uyandırma sensörü olmayan bir sensör döndürür
Android 13'ten itibaren kullanılabilen yön sensörü, cihazın gerçek kuzeye göre hangi yöne baktığını derece cinsinden ölçer. Başlık sensörü iki SensorEvent
değeri içeriyor.
Biri ölçülen cihaz başlığı, diğeri ise sağlanan başlık değerinin doğruluğu için.
Bu sensör tarafından bildirilen yön değerleri 0.0
(dahil) ile 360.0
(hariç) arasında olmalıdır. 0
kuzeyi, 90
doğuyu, 180
güneyi ve 270
batıyı gösterir.
Bu sensörün doğruluğu %68 güvenle tanımlanır. Temel dağılımın Gauss normal olduğu durumlarda doğruluk, bir standart sapmadır. Örneğin, yön sensörü 60 derecelik bir yön değeri ve 10 derecelik bir doğruluk değeri döndürüyorsa gerçek yönün 50 derece ile 70 derece arasında olma olasılığı %68'dir.