17 Ağustos 2014 Pazar

Nokia Lumia SensorCore SDK



Microsoft, Build 2014 konferansında yeni bir SDK tanıttı: Nokia Lumia SensorCore SDK. SensorCore SDK, ivme ölçer ve jiroskop gibi çeşitli hareket sensörleri yardımıyla kullanıcıların fiziksel aktivitelerini ve hareketlerini algılayıp bunları uygulamanızda kullanmanızı sağlayan bir API koleksiyonu. SensorCore ile yaptığınız uygulamalar arkaplanda çalışırken bile hareketlerinizi takip ederek kayıt altına alır ve bunu bataryayı oldukça az tüketerek gerçekleştirir.
Bu tip uygulamalara oldukça ilgi duyan birisi olarak, SensorCore SDK ile uğraşmaya başladım ve size de bu yazımda SensorCore'un sağladığı özelliklerden biri olan Step Counter API'ı uygulamanızda nasıl kullanabileceğinizden bahsedeceğim. Ama öncesinde bu SDK'nın merkezinde yer alan Hareket Verisi (motion data) hakkında bilgi vermek isterim.

Olmazsa Olmaz: Hareket Verisi

Yukarıda sürekli atılan adım sayısı gibi bir takım verileri toplamaktan bahsettim. İşte Hareket Verisi, cihazınızda bulunan çeşitli hareket sensörlerinden aldığı verilere dayanarak yapılan fiziksel etkinliklere dair anlamlı bilgiler oluşturur ve uygulama geliştirici olarak siz SensorCore'u kullanarak bu bilgilere ulaşırsınız. Dolayısıyla SensorCore SDK ile yazılan uygulamalar sadece hareket verisi koleksiyonunu destekleyen cihazlarda, yani Lumia 630, 635, 930, 1520 ve Cyan'da çalışır. Bunların haricindeki cihazlarda SensorCore'lu uygulamalar çalıştırmak maalesef mümkün değil.



Step Counter API

Step Counter API, kullanıcıların attığı adım sayısı ve ne kadar zamandır yürüdüğü veya koştuğu hakkında bilgi verir. Yürümek veya koşmak dedim, çünkü Step Counter API hareketi sadece hıza değil yoğunluğa göre de değerlendirdiğinden bu ikisini birbirinden ayırt edebiliyor. Şimdi isterseniz Lumia.Sense alan adı (namespace) altında bulunan StepCounter sınıfına ait metodlara bir göz atalım.


  • IsSupportedAsync: Cihazınızın hareket verisi koleksiyonunu destekleyip desteklemediğini denetler.
  • GetDefaultAsync: Uygulamanızı sensöre bağlar.
  • ActivateAsync: Uygulamanız ve sensör arasında iletişim kanalı kurar. Diğer bir deyişle, uygulamanız ve sensör arasındaki haberleşmeyi sağlar. Sensör bağlantısını aktif hale getirmek gibi de düşünebilirsiniz.
  • DeactivateAsync: Yukarıda bahsettiğim iletişim kanalını kapatır.
  • GetCurrentReadingAsync: GetDefaultAsync metodu ile aldığınız verileri okur.
  • GetStepCountAtAsync: Belirtilen bir zaman diliminde kaydedilmiş verileri okumanızı sağlar. Yalnız dikkat; bu metodu kullanırsanız, 5 dakika arayla olan verileri alırsınız.
  • GetStepCountHistoryAsync: Geçmişte belirttiğiniz bir andan itibaren belli bir süre kaydedilmiş veriyi okumanızı sağlar. 5 dakika kuralı bu metod için de geçerlidir.
Yani, uygulamanızda atılan adım sayısını göstermek istiyorsanız önce IsSupportedAsync metodu ile uygulamanın yüklü olduğu cihazın Hareket Verisi özelliğine sahip olup olmadığını kontrol edin. Eğer destekliyorsa, GetDefaultAsync ile uygulamanızı sensöre tanıtın; ardından ActiveAsync ile sensör ve uygulama arasında bir bağlantı kurun. Daha sonra, GetCurrentReadingAsync, GetStepCountAtAsync veya GetStepCountHistoryAsync ile (amacınıza göre uygun olan metoda siz karar vereceksiniz) sensörden gerekli verileri alın ve uygulamanızda gösterin. Örneğin, Bing Health & Fitness uygulaması SensorCore API'dan faydalanan uygulamalardan biri.



Sonuç

Cihazınızın Ayarlar bölümünden Hareket Verisi özelliğini açtığınız zaman, siz herhangi bir uygulama kullansanız da kullanmasanız da Hareket Verisi çeşitli sensörlerden veri toplamaya başlar bu verileri 10 gün boyunca tutar. 10 gün geçtikten sonra eski veriler yenileriyle değiştirilmeye başlanır. SensorCore SDK ile uygulamanızda bu verilere ulaşır ve bunların üzerinden çeşitli işlemler yapabilirsiniz. Eğer hareket verisini kullanmak istemiyorsanız tekrar ayarlardan bu özelliği kapatabilir ve isterseniz eski verileri silebilirsiniz. Burada dikkat etmeniz gereken nokta şu: Cihazdan verileri silebilirsiniz fakat bu veriler kullandığınız uygulamadan silinmez. O yüzden yüklediğiniz uygulamada verileri silme gibi bir seçenek olup olmadığına dikkat etmenizi tavsiye ederim. İsterseniz örnek uygulamalara şu sayfadan ulaşabilirsiniz.

Kolay gelsin!

Hiç yorum yok:

Yorum Gönder