Ne yapmaya çalışıyorum/Ne yaptım: Görme engelli kullanıcılar için TalkBack'in çok basit bir sürümünü oluşturmaya çalışıyorum. Kullanıcı tarafından tıklanan bir düğmenin contentDescription öğesini okuyan ve bunu sesli okuyan basit bir erişilebilirlik hizmeti hazırladım.Bir eylemin AccessibilityService'de gerçekleştirilmesine nasıl müdahale edilir?
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// get the source node of the event
AccessibilityNodeInfo source = event.getSource();
if (source == null) {
return;
}
// Check if a button is clicked and speak out the content
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_CLICKED
&& BUTTON_CLASS_NAME.equals(source.getClassName()) {
Log.d("Button clicked", source.getViewIdResourceName().toString());
convertTextToSpeech(source.getContentDescription().toString());
}
if (source != null)
source.recycle();
return;
}
sorun: Fakat, kullanıcı ÖNCE aslında düğmesi tıklandığında yangınlar eylemi gerçekleştiren düğmenin açıklaması dinleyemiyorum bu şekilde. Kullanıcı açıklamayı dinlediğinde, düğme zaten tıklanmış ve bir eylem gerçekleştirilmiştir.
Soru: Ben eylemi kesme nasıl (örn: düğmesine tıkladıktan sonra yeni bir aktivite açılması) kullanıcı güvenli bir şekilde yeni başlatmadan sağlamak geribildirim ile ekranda mevcut görüşleri keşfetmeleri gerçekleştirilen olmaktan faaliyetler veya diğer eylemleri ateşlemek?
Talkback'de neler olduğu gibi bir şey: açıklamayı duymak için kullanıcı tek dokunuşları ve eylemi gerçekleştirmek için iki kez dokunuldu. Talkback, kullanıcı iki kez dokunmadıkça bir eylemin gerçekleşmesini nasıl önler? TouchExplorationMode'a baktım ama sanırım daha çok tıklamalardan ziyade jestler için kullanılıyor.