Android – Telefon Sallama Algılama (Shake Detection)

 

Merhaba dostlar, bugün buneydiki.com‘da da sorulan ve cevaplanan bir konu üzerine konuşacağız. Uygulamamıza; kullanıcı telefonunu salladığında olmasını istediğimiz bir event (olay) çalışmasını istiyorsak yapmamız gerekenleri anlatalım. Örnek uygulamamı indirebilir ve kurcalayabilirsiniz: google play linki.

Öncelikle daha önce de konuştuğumuz gibi; yapmak istediğimiz iş için, çalışan güzel bir kütüphane var ise, onu kullanmayı tercih ediyorum ben. Bunun sebebi ise aynı işlev için ‘tekerleği yeniden keşfetmenin‘ bizi yavaşlatacak olmasıdır. Tabi ki temelleri öğrenmek için güzel bir tecrübe olabilir sensörlerin kontrolünü öğrenmek ama bizim tek amacımız sallamayı algılamak olduğu için bu yöntemi anlatacağım.

Konumuza dönelim; sallama algılamak için var olan en iyi kütüphane şuan için seismic adında bir kütüphane, github reposuna link ile ulaşabilirsiniz.

1) Kütüphanemizi projemize eklemek:

Projemizin build.gradle (Module: App) dosyasını açalım ve dependencies içine ekleyelim:

1
2
3
4
5
dependencies{
...
compile 'com.squareup:seismic:1.0.2'
...
}

2) Class’a implement etmek:

Sallama algılamanın kullanılmasını istediğimiz sınıfımızı(class) açalım ve implement edelim:

1
2
3
4
public class sınıfAdiniz extends AppCompatActivity implements ShakeDetector.Listener{

...
}

3) ShakeDetector ve SensorManager nesnelerini oluşturmak:

Şimdi kütüphanenin fonksiyonlarını kullanabilmek ve sensorü çalıştırabilmek için nesnelerimizi oluşturalım:

1
2
3
4
5
6
7
8
9
10
public class sınıfAdiniz extends AppCompatActivity implements ShakeDetector.Listener {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
ShakeDetector sd = new ShakeDetector(this);
sd.start(sensorManager);

...
}

4) Sallama olduğunu algıladıktan sonra yapılacaklar:

Sallamayı algıladıktan sonra uygulamanın neler yapmasını istiyorsak yazmamız gereken yer hearShake() fonksiyonunun içidir, biz fonksiyonun içine salladığında ufak bir toast mesajı yazdırdık:

1
2
3
4
@Override public void hearShake() {

Toast.makeText(this, "Telefon Sallandı...", Toast.LENGTH_SHORT).show();
}

Evet dostlar bugün sallama algılama üzerine konuştuk, umarım bir gün uygulamalarınızın birinde ihtiyacınız olur ve kullanırsınız. Örnek için yukarıda da paylaştığım gibi örnek uygulamamı indirebilir ve kurcalayabilirsiniz: google play linki.

ahmet

Ahmet Kılınç - Software Developer

Bunlar da hoşunuza gidebilir...

2 Cevaplar

  1. Selçuk ÖZTÜRK dedi ki:

    Teşekkür ederim

Selçuk ÖZTÜRK için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.