4
A
回答
-1
嘗試使用廣播消息,您可以向廣播接收器發送意圖,然後在接收器中啓動通知或其他內容。
5
看起來,如果AccessibilityEvent.getSource()返回null,TalkBack的當前版本將忽略通知,因此您最好使用Toast。這對於向用戶提供一致的反饋,無論他們是否使用「話語提示」都具有額外的好處。
Toast.makeText(context, /** some text */, Toast.LENGTH_SHORT).show();
但是通常,你可以手動創建一個AccessibilityEvent並通過AccessibilityManager發送。
AccessibilityManager manager = (AccessibilityManager) context
.getSystemService(Context.ACCESSIBILITY_SERVICE);
if (manager.isEnabled()) {
AccessibilityEvent e = AccessibilityEvent.obtain();
e.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
e.setClassName(getClass().getName());
e.setPackageName(context.getPackageName());
e.getText().add("some text");
manager.sendAccessibilityEvent(e);
}
1
您可以像@alanv所說的那樣直接使用可訪問性管理器(因爲API 14)。 但是由於API 16,您必須提供一個視圖。
final View parentView = view.getParent();
if (parentView != null) {
final AccessibilityManager a11yManager =
(AccessibilityManager) view.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
if (a11yManager != null && a11yManager.isEnabled()) {
final AccessibilityEvent e = AccessibilityEvent.obtain();
view.onInitializeAccessibilityEvent(e);
e.getText().add("some text");
parentView.requestSendAccessibilityEvent(view, e);
}
}
相關問題
- 1. 無法訪問屬性在ember.js視圖
- 2. 在事件發生後訪問另一個視圖控制器的屬性
- 3. 無法訪問事件發佈值
- 4. Silverlight與MVVM:如何從視圖訪問ViewModel的事件?
- 5. 通知哪些調用與可訪問性無關聯
- 6. 骨幹子視圖事件不會觸發,訪問this.model丟失
- 7. 跨視圖訪問屬性
- 8. 可訪問性與可見性Oracle SQL
- 9. 如何處理與OUTLOOK相關的可訪問性問題
- 10. Android:自定義視圖不給予列表視圖中的可訪問性事件
- 11. autoit無法訪問樹視圖控件
- 12. disruptor事件可視性
- 13. 無法訪問視圖
- 14. boost :: fusion訪問關鍵視圖類型的關聯視圖
- 15. 故事板內的訪問視圖
- 16. 在vue事件總線發送的對象的訪問值js
- 17. 將視圖模型的值發送到UserControl相關屬性WPF
- 18. 發送扭曲的服務器使用Internet Explorer訪問事件
- 19. 如何訪問與引發事件的元素相關的特定div?
- 20. 發送與視頻流同步的事件
- 21. iPhone:關於地圖視圖觸摸事件的問題
- 22. 從視圖訪問tabBarController的屬性?
- 23. 訪問父視圖的屬性
- 24. 訪問視圖中的DataContext屬性
- 25. 問題與發送事件數據與點擊socket.io
- 26. 問題與滾動視圖和訪問它的子視圖
- 27. 如何禁用包含所有子視圖的視圖的可訪問性?
- 28. Android中的截斷視圖的可訪問性
- 29. 訪問設計視圖中不可見的元素的屬性?
- 30. 訪問控件內部ASP.NET視圖控件(事件處理)
也許應重新考慮這是否是最好的地方 - 您只會向TalkBack的用戶提供反饋,但不會在視覺上提供反饋?這使非TalkBack用戶無法訪問。 – ataulm