Dokunsal çerçeve için kullanıcı deneyimi temeli

Dokunma teknolojisine dayalı tüm Android çerçevesi iyileştirmeleri benimsediği bir dizi kullanıcı deneyimi ilkesi geçerlidir. Şu anki prensipleri, buzzlı titreşimin net dokunma teknolojisi ile değiştirilmesini ve zengin dokunma teknolojisi keşfi.

Kullanıcı Deneyimi İlkeleri

Şekil 1. Geçerli ilkeler

Aşağıdaki tabloda mevcut tüm dokunma teknolojisi API'leri listelenmektedir.

API Yöntemler Eklendiği yıl
android.view.DopticFeedbackConstants
  • BAĞLAM_TIKLAMASI
  • SAAT_KARTI
  • SANAL_ANAHTAR
  • KLAVYE_DOKUNUN
  • UZUN_BASINÇ
2016'dan önce
  • KEYBOARD_PRESS
  • KLAVYE_AÇIKLAMA
  • METİN_EL_TAŞI_TAŞI
  • SANAL_ANAHTAR_AÇIKLAMA
2017 (Android 8)
  • ONAYLA
  • REDDET
  • GESTURE_BAŞLAT
  • GESTURE_END
2020 (Android 11)
android.Görünüm
  • managementHapticFeedback()
2016'dan önce
android.os.Vibrator
  • titreşim()
  • hasVibrator()
2016'dan önce
  • hasAmplitudeControl()
2017 (Android 8)
  • areAllEffectsSupported()
  • areAllPrimitivesSupported()
  • areEffectsSupported()
  • arePrimitivesSupported()
2020 (Android 11)
android.os.TitreşimEfekti
  • createOneShot()
  • createWaveform()
2017 (Android 8)
  • EFEKT_KARTI
  • EFEKT_TIKLAMA
  • efekt_HEAVY_TIKLAMA
  • EFEKT_ÇİFT_TIKLAMA
  • createÖnceden Tanımlanmış()
2019 (Android 10)
android.os.VibrationEffect.Beste
  • PRIMITIVE_ONAY
  • PRIMITIVE_TIKLAMA
  • addPrimitive()
  • besteleme()
2020 (Android 11)
android.media.AudioAttributes.Builder
  • setHapticChannelsSessiz()
2019 (Android 10)

Hareketli titreşim

Artık çağrı cihazları ve özellikli telefonları kullanıyoruz, düşük kaliteli ama güç verimli ERM. Zil sesinin çalınması için ses sinyalinin yerine buzzer tabanlı titreşimler kullanılmıştır sessiz moda geçmenizi öneririz. Rahatsız edici ve gürültülü seslere neden olan eski donanım bileşenleri sesler düşük kaliteli gösterimler ( örneğin ucuz, bozuk bir telefon).

Net dokunma teknolojisi

Net dokunma teknolojisi, ayrı durum değişiklikleri hissini destekler (örneğin, (güç açma/kapatma işlemi sırasındaki ikili programdaki değişiklikler). ayrı uygunluk, net dokunma teknolojisi tek bir varlık olarak oluşturulur ( örneğin, tek bir giriş etkinliği başına bir dokunma teknolojisi efekti).

Android, net dokunma teknolojisi yerine güçlü ama keskin hisler sunmayı amaçlar ürkütücü veya ürkünç hislerden daha iyidir.

Net dokunma teknolojisini desteklemek için oluşturulan önceden tanımlanmış dokunma teknolojisi sabitleri şunları içerir: şunları içerir:

HapticFeedbackConstants:

  • CLOCK_TICK
  • CONFIRM
  • CONTEXT_CLICK
  • GESTURE_END
  • GESTURE_START
  • KEYBOARD_PRESS
  • KEYBOARD_RELEASE
  • KEYBOARD_TAP
  • LONG_PRESS
  • REJECT
  • TEXT_HANDLE_MOVE
  • VIRTUAL_KEY
  • VIRTUAL_KEY_RELEASE

VibrationEffect:

  • EFFECT_CLICK
  • EFFECT_DOUBLE_CLICK
  • EFFECT_HEAVY_CLICK
  • EFFECT_TICK

Cihaz üreticileri ve geliştiriciler arasında ortak bir bilgi birikimine sahip olmak Android ekosisteminde dokunma teknolojisinin genel kalitesini yükseltiyoruz. Şunu kullanın: temel yapılacaklar listesi, donanım değerlendirmesi ve CDD. daha fazla bilgi edinin.

Basın ve Bildiri

Şekil 3. Basın ve bırakın.

Zengin dokunma teknolojisi

Zengin dokunma teknolojisi, teklinin ötesine geçen ve gittikçe büyüyen bir dokunma teknolojisi kategorisidir. harekete dayalı efektlerdir. Android, yüksek ses kalitesiyle zengin dokunma teknolojisini desteklemeyi amaçlıyor incelikli ayrıntı düzeyiyle birleştirilebilirlik ve ayarlanabilirlik özellikleri sunar. Aşağıdakiler kullanım alanları Android 11 veya önceki sürümlerde desteklenir.

Zengin Dokunma teknolojisi

4.Şekil Kayan doku ile zengin dokunma teknolojisi

Sürükleme ve Kaydırma

5. Şekil. Sürükleme ve kaydırma

Kullanım alanı 1: Kayan doku

Parmak bir dokunma yüzeyinde kaydırken dokunma teknolojisi tekrarlanırsa (dokunmatik yüzeyin üzerinde Örneğin, sürükleme, kaydırma, yüzeyi hayalet dokunma dokusuyla keşfetme) tekrarlayan dokunma teknolojisi efektleri tercihen net ve incedir.

Tek bir efekt canlı değil de canlıysa tekrarlar büyük olasılıkla ortadan kalkacaktır. Sonuç ise uzun bir süredir tek sinyalden çok daha etkilidir.

Genlik yeterince belirsiz değilse algılanan dokunma teknolojisi enerjisi artar sayesinde, eğitimin sonunda dokunma teknolojisinin çok güçlü olmasını sağlayabilir. tespit edebilirsiniz.

Kaydırma ve sürükleme hareketleri için basit bir yüzey dokunsal dokusu uygulayın

CLOCK_TICK ve TEXT_HANDLE_MOVE öğelerini şurada kullanın: HapticFeedbackConstants. Bu sabitler, tekrarın ve genliğin özelliklerini önceden tanımlar.

Kendi efektinizi oluşturun

Kendi efektinizi yapmak için dizileri birbirine bağlayarak bir tasarım oluşturun /PRIMITIVE_CLICK ve PRIMITIVE_TICK VibrationEffect.Composition. Tekrarlama ve genlik ölçeği özelliklerini ayarlayabilirsiniz. addPrimitive(int primitiveID, float scale, int delay) kullanılıyor. Destek şuna dayanır: "the" CAP_COMPOSE_EFFECTS olanaklarını Vibrator HAL Arayüzü.

2. Kullanım alanı: Kolaylık efektli uzun titreşim

Uzun titreşim, 0'dan noktaya geçiş yapan yumuşak genlikli titreşimdir hedef genliği. Uzun titreşim, kolayca algılanabilir bir dikkat oluşturabilir dokunma teknolojisi. Ancak ani ve uzun bir titreşim, kullanıcıları sessiz bir ortamda irkilebilir ve genellikle duyulabilir vızıltı sesleri çıkarır. Daha fazla hoş uzun titreşim, yumuşak geçiş efektini uzun sürenin başında uygula titreşim. Bu şekilde, akış kabuğu hücresine doğru gelişen hedef genliği.

Yumuşak geçiş efektini uygula

  1. Genişlik kontrolünün donanım özelliklerini, android.os.Vibrator.hasAmplitudeControl().

    • Sonuçta kolaylık sağlaması için sonucun true olması gerekir: değişen bir genlik seviyesi.
  2. Tekliflerinizi otomatikleştirmek ve optimize etmek için VibrationEffect.createWaveform(timings[], amplitudes[], int repeat).

  3. Şu değeri oluşturmak için timings[] ve amplitudes[] serisini ayarlayın: Şekil 6'da gösterildiği gibi yumuşak geçiş eğrisi.

Uzun Titreşim

6. Şekil. Uzun titreşim yumuşak geçiş eğrisi

3. Kullanım alanı: Sesle bağlantılı dokunma teknolojisi

Sesle bağlantılı dokunma teknolojisi, sesin ritmiyle birleştirilen dokunma teknolojisi kalıplarıdır kullanıcının dikkatini çekmektir.

Ses bağlantılı dokunma teknolojisi: Avantajları

Ses bağlantılı dokunma teknolojisi uygulamak için net dokunma teknolojisiyle uzun titreşimleri birleştirin. Net dokunma teknolojisinden gelen güçlü ama kısa dokunma teknolojisi hissi ayrık sesler çıkarır olduğunu öğrenmiştiniz. Çok uzun süren yüksek seviyedeki uyarıcılarla bir araya geldiğinde, bu özellik, kullanıcının dikkatini çekmek için çok iyi bir iş çıkarıyor.

Sansasyon ritmik kalıplarını göz önünde bulundurmak önemlidir. Bir şeyin kullanıcılar dokunma duygularını rastgele titremeler olarak algılar ve el ile onları görmezden gelebilir.

Ses Çifti

7.Şekil Ses çifti dokunma teknolojisi örneği

Sesle bağlantılı dokunma teknolojisi: Uygulamayla ilgili ipuçları

Sesle bağlantılı dokunma teknolojisi uygulamak, içeriğe dair temel bilgilere sahip olmayı gerektirir ses ve dokunma teknolojisi kanallarının oynatılmasına olanak tanır. Aşağıdakileri göz önünde bulundurun.

  • MediaPlayer'ı kullanma veya SoundPool sınıflar.

    • Özel meta veri anahtarına sahip OGG biçiminde öğeler (ANDROID_HAPTIC ve ardından çeşitli dokunma teknolojisi kanalları) dokunma teknolojisi verileri ve MediaPlayer ve SoundPool ile oynatma mevcut.
  • Dokunma teknolojisi ve ses çalma desteğinin belirtildiği audio_policy_configuration.xml

    • Dokunma teknolojisi kanalıyla çıkış profili kullanma AUDIO_CHANNEL_OUT_HAPTIC_A|B
    • Dokunsal kanallarla çıkış akışı için, dokunma teknolojisinin verilerde ekstra kanallar olarak sunulur.

    Örnek

    Çıkış akışı için kanal maskesi şöyle görünüyorsa:

    AUDIO_CHANNEL_OUT_STEREO_HAPTIC_A

    Bu durumda her örnek aşağıdaki gibi görünmelidir:

    AUDIO_LEFT_CHANNEL,AUDIO_RIGHT_CHANNEL,HAPTIC_CHANNEL_A

  • Değiştir AudioAttributes.Builder( ).setHapticChannelsMuted(boolean muted) dokunma teknolojisi kanalını oynatmak için false adresine.

    • Dokunsal kanalların sesi varsayılan olarak kapalıdır (true).
    • Kullanım alanları arasında zil sesleri ve eş zamanlı kullanıcı arayüzü sesleri yer alır. dokunma teknolojisi ve geri bildirim.
  • Vibrator HAL, harici kontrol desteği uygulamalıdır.

Ses Bağlantılı Dokunmatik

8. Şekil. Sesle bağlantılı dokunma teknolojisi uygulama

Ses bağlantılı dokunma teknolojisi: Dokunsal Oluşturucu

HapticGenerator bir Ses Efekti Android 12'de kullanıma sunulan bu özellik, ses kanalından dokunsal içeriği sesle bağlantılı dokunma teknolojisiyle gerçek zamanlı olarak oynatabilir. Efekt AudioTrack özellikleri Şekil 9'da gösterildiği gibidir.

Dokunsal Oluşturucu mimarisi

9. Şekil. Dokunsal Oluşturucu mimarisi

Dokunsal jeneratör algoritmanızın yüksek kaliteli dokunma teknolojisi ürettiğinden emin olmak için üretme algoritmasını cihazın titreşim motoruna göre ayarlamak için ses dalga formlarına uyguladığı filtre zincirini yapılandıran parametrelerdir. Bu bölümde, bu parametreler ayrıntılı olarak ve nasıl ayarlanacakları açıklanmaktadır. dikkat edin.

  1. Bant geçiş filtresi için rezonant frekansı

    Titreşim rezonans frekansı, bir dokunma teknolojisinin aktüatörünün frekansıdır. Maksimum çıkışa sahip. Bu parametre, rezonatörü kısmen yanıt aktarım işlevini düzelterek daha geniş bir bant genişliği elde edebilirsiniz. Android çerçevesi bu değeri otomatik olarak Titreşim HAL yöntemi IVibrator.getResonantFrequency.

    Bu parametre için varsayılan değer 150 Hz'dir. Bu ayar, burada bulabilirsiniz.

  2. Yavaş zarf için normalleştirme gücü

    Bu parametre, kısmi normalleştirmedeki üssü belirler (otomatik kazanç kontrolü). Varsayılan değeri -0.8'dir. Bu, Bu kazanç kontrol adımı, dinamik aralık varyasyonunun% 80'ini kaldırır. Bu değer, buradaki kodda değiştirilebilir.

  3. Bant durdurma filtresi için Q faktörü

    Titreşim kalite faktörü (Q faktörü) iki parametreye göre belirlenir:

    • Sıfır Q, bant durağı filtresindeki sıfırların kalite faktörü, rezonansı kısmen iptal eder.

    • Bant durdurma filtresindeki kutupların kalite faktörü olan Kutup Q.

    Bu iki değerin oranı, dönüşüm sırasında rezonansın bastırılmasını daha düşük frekansları yükseltmek ve algoritmanın yanıtını genişletmek için kullanılır. Örneğin, Sıfır Q için 8, Kutup Q üretimi için 4 varsayılan değerleri 2 oranı, rezonans bastırmayı 2 kat (6 dB) ile sınırlandırır. Android çerçevesi her iki değeri Vibrator HAL çıkışına bağlar. IVibrator.getQFactor yöntemi.

    Varsayılan değerler motor gücünün sönümlenmesini dikkate almıyorsa kullanıyorsanız, her iki değeri de aynı anda değiştirmenizi öneririz. ya her ikisini de artırarak veya her ikisini de azaltarak. Sıfır Q'nun Q kutupuna oranı 1'den büyük olmalıdır. Bu değer, buradaki kodda değiştirilebilir.

  4. Bozukluğun köşe frekansı

    Köşe frekansı, yayını azaltan düşük geçişli bir filtre tarafından uygulanır. düşük seviyede titreşim sağlar ve kübik distorsiyon kullanarak daha yüksek düzeyleri geliştirir. Değer varsayılan olarak 300 Hz'dir. Bu değer, buradaki kodda değiştirilebilir.

  5. Bozulma için kazanç ve küp eşiği girin

    Bu parametreler, doğrudan reklam grubuna uygulanan doğrusal olmayan bir distorsiyon filtresi düşük frekans sinyallerinin genliğini azaltan giriş dalga formu yüksek frekanslı olanları artıracaktır.

    • Giriş kazanç faktörü için varsayılan değer 0,3'tür.
    • Küp eşiği için varsayılan değer 0.1'dir.

    İki değeri birlikte değiştirmenizi öneririz. Bu numaraları kodda bulabilirsiniz. burada bulabilirsiniz.

    Bu filtrenin uyguladığı işlev hakkında daha fazla bilgi için burada bulabilirsiniz. Bu iki parametrenin sonucu nasıl etkilediği hakkında daha fazla bilgi edinmek için filtrelerin sıklık tepkilerini not etmenizi ve bu tepkilerin farklı parametre değerleriyle değiştiğini gösterir.

  6. Bozukluğun çıkış kazancı

    Bu parametre son titreşim genliğini kontrol eder. Bu, daha önce titreşim genliğini daha düşük olacak şekilde sınırlayan yumuşak bir sınırlayıcıdan sonra uygulanır 1'den fazla değildir. Varsayılan değeri 1.5'tir ve kodda değiştirilebilir. burada bulabilirsiniz. Titreşim çok hafifse değeri artırın. Sesi duyabiliyorsanız aktüatör donanımının tık sesi, değeri azaltın.