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.
Ş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 |
|
2016'dan önce |
|
2017 (Android 8) | |
|
2020 (Android 11) | |
android.Görünüm |
|
2016'dan önce |
android.os.Vibrator |
|
2016'dan önce |
|
2017 (Android 8) | |
|
2020 (Android 11) | |
android.os.TitreşimEfekti |
|
2017 (Android 8) |
|
2019 (Android 10) | |
android.os.VibrationEffect.Beste |
|
2020 (Android 11) |
android.media.AudioAttributes.Builder |
|
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:
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
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.
Ş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.
4.Şekil Kayan doku ile zengin dokunma teknolojisi
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
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.
- Sonuçta kolaylık sağlaması için sonucun
Tekliflerinizi otomatikleştirmek ve optimize etmek için
VibrationEffect
.createWaveform(timings[], amplitudes[], int repeat)
.Şu değeri oluşturmak için
timings[]
veamplitudes[]
serisini ayarlayın: Şekil 6'da gösterildiği gibi yumuşak geçiş eğrisi.
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.
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 veyaSoundPool
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 veMediaPlayer
veSoundPool
ile oynatma mevcut.
- Özel meta veri anahtarına sahip OGG biçiminde öğeler
(
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
- Dokunma teknolojisi kanalıyla çıkış profili kullanma
Değiştir
AudioAttributes.Builder( ).setHapticChannelsMuted(boolean muted)
dokunma teknolojisi kanalını oynatmak içinfalse
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.
- Dokunsal kanalların sesi varsayılan olarak kapalıdır (
Vibrator HAL, harici kontrol desteği uygulamalıdır.
- HIDL uygulamaları için
setExternalControl(bool enabled) generates (Status status)
. - AIDL uygulamaları için
void setExternalControl(in boolean enabled)
.
- HIDL uygulamaları için
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.
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.
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.
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.
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.
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.
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.
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.