SORU
19 Aralık 2012, ÇARŞAMBA


Nasıl bir Android cihaz titreşimle yapmak için?

Bir Android uygulaması yazdım. Şimdi, cihaz belirli bir eylem oluştuğunda titreşim yapmak istiyorum. Bunu nasıl yapabilirim?

CEVAP
12 HAZİRAN 2013, ÇARŞAMBA


Titreşim İzni Verin

Herhangi bir titreşim kod uygulama başlamadan önce, uygulama titreşimle izin vermek zorunda:

<uses-permission android:name="android.permission.VIBRATE"/>

Androidmanifest.xml dosyanıza bu satırı eklemeyi unutmayın.

Titreşim Kitaplığı alın

En IDE sizin için yapacak, ama burada eğer senin değilse bile alma deyimi vardır:

 import android.os.Vibrator;

Titreşim oluşmasını istediğiniz yere emin faaliyeti yapmak.

Nasıl Belirli bir Süre için Titreşimle

Çoğu durumda, kısa zaman, önceden belirlenmiş bir miktar için cihaz titreşimle isteyeceksin. vibrate(long milliseconds) yöntemi kullanarak bunu elde edebilirsiniz. Burada hızlı bir örnek:

// Get instance of Vibrator from current Context
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

// Vibrate for 400 milliseconds
v.vibrate(400);

İşte bu kadar basit!

Nasıl Süresiz Titreşimle

Cihazı titreşimli süresiz olarak devam etmek istediğiniz durumda olabilir. Bunun için, vibrate(long[] pattern, int repeat) yöntemini kullanırız:

// Get instance of Vibrator from current Context
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

// Start without a delay
// Vibrate for 100 milliseconds
// Sleep for 1000 milliseconds
long[] pattern = {0, 100, 1000};

// The '0' here means to repeat indefinitely
// '0' is actually the index at which the pattern keeps repeating from (the start)
// To repeat the pattern from any other point, you could increase the index, e.g. '1'
v.vibrate(pattern, 0);

Titreşimi durdurmak için hazır olduğunuzda, sadece cancel() yöntemi:

v.cancel();

Nasıl Titreşim Desenleri kullanmak

Eğer daha özel bir titreşim istiyorsanız, kendi titreşim desenleri oluşturmak için deneyebilirsiniz:

// Get instance of Vibrator from current Context
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

// Start without a delay
// Each element then alternates between vibrate, sleep, vibrate, sleep...
long[] pattern = {0, 100, 1000, 300, 200, 100, 500, 200, 100};

// The '-1' here means to vibrate once, as '-1' is out of bounds in the pattern array
v.vibrate(pattern, -1);

Daha Karmaşık Titreşimler

Dokunsal geri bildirim daha geniş bir yelpazesi sunuyoruz, birden fazla SDK vardır. Özel efektler için kullandığım bir Immersion's Haptic Development Platform for Android.

Sorun giderme

Eğer cihazınız titreşim kazanırsa, ilk titreşimle emin olun:

// Get instance of Vibrator from current Context
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

// Output yes if can vibrate, no otherwise
if (v.hasVibrator()) {
    Log.v("Can Vibrate", "YES");
} else {
    Log.v("Can Vibrate", "NO");
}

İkinci olarak, lütfen başvurunuzu titreşimle izin verdin emin olun! İlk noktaya tekrar bakın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alan Fullmer

    Alan Fullmer

    3 EYLÜL 2010
  • bunliu

    bunliu

    2 Mayıs 2007
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012