問題タブ [android-accessibility]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - RecyclerView のレイアウト動作
私は他のアプリのレイアウトにAccessibilityService
アクセスすることに取り組んでいます。
たとえば、カスタム レイアウトがある場合、次のように、XML 内の各ビューのフォーカス処理を正確に行います。
を使用したとき、レイアウトをナビゲートする目的でシステムにorをListView
送信して動作を定義しました。KEYCODE_DPAD_UP
KEYCODE_DPAD_DOWN
今、私は a を使用する必要がありRecyclerView
、正しい順序でビューのアイテムにアクセスする方法を正確に理解できません。
正しい順序とは:
レイアウトの順序が で機能する方法について教えてもらえますかRecyclerView
?
accessibility - Android デバイスで TalkBack をオンにしてボタン (またはその他のウィジェット) をフォーカスする方法は?
アプリケーションにアクセシビリティを実装しています。シナリオは次のとおりです。
画面の一番上 (Activity) に 4 つのボタンが水平に配置されています。ボタンをクリックすると、ユーザーに何かを表示する警告ダイアログが起動します。アラートが表示された状態でも、画面上部の 4 つのボタンをクリック操作できます。Android デバイスで TalkBack (Android アクセシビリティ サービス) をオンにしてそのボタンをクリックすると、アラートが表示されますが、フォーカスを移動できません (Android フォンで TalkBack 機能がオンになっているときに表示される黄色の長方形のボックス) ) それらの 4 つのボタンに。助けてください!
android - AccessibilityService が実際のデバイスで機能しない
このドキュメントに従って AccessibilityService を作成しました: https://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html
ここでコードをコピーする必要はないと思います。すべてを段階的に実行し、試したすべてのエミュレーター (19 ~ 25 の API) で正常に動作しますが、実際のデバイス (API 25) では動作しません。 . 実際のデバイスでは、onServiceConnected メソッドが呼び出されることはありません。私が持っている唯一の本物のデバイスです。何を試すことができますか?この問題の原因は何ですか?
編集:今、別の実際のデバイス(Android 4.4)で試してみましたが、それでも動作します。今、私は本当に混乱しています。
android - ListView が空のときにフォーカスを処理する方法
環境
レイアウトのさまざまなビューのフォーカス順序を指定する必要があるため、完全にアクセスできる必要があるアプリを開発しています。
私のレイアウトは次のようになります (数字はフォーカス順序を定義し、3はListView
一般的なビューです):
XML の関連部分 (自分のニーズに合わせて意図的に使用nextFocusDown
したのではなく、使用したことを考慮して):nextFocusForward
これは、ListView がアイテムで満たされている場合にうまく機能し、フォーカスは意図したとおりに動作します。1 ⇒ 2 ⇒ 3 (アイテムごと) ⇒ 4 ⇒ 1 ... など。
問題
私ListView
が空のとき、Android フォーカス マネージャーは 2 番目のビューでスタックしているようです。フォーカスが項目2に達すると、ListView
さらに少ないビューから 4 番目のビューにはフォーカスが与えられません。私のリストにアイテムが含まれていない場合、フォーカスを2から4に直接移動したいからです。
質問
何か不足していますか、それともコード内の他の何かがこの奇妙な動作を引き起こす可能性がありますか?
android - AccessibilityTraversalOrder の後方互換性
Android のビューで AccessibilityTraversalOrder をプログラムで設定しようとしていますが、API レベル 22 でうまく機能しています。トラバーサル順序を設定するために呼び出すメソッドがあります。
そして、このように AccessibilityDelegate を設定します。
最小 API バージョン 16 (JellyBean) をサポートする必要があるため、このソリューションは拡張できません。それで、 AccessibilityNodeInfoCompat クラスについて知りました。このようなヘルパーメソッドでこのようなクラスを使用しようとしました。
このソリューションには 2 つの問題があります。 1: ユーザーが画面上のそのビューに触れるとすぐにデリゲートが再度呼び出され、そのノードが再度初期化されるため、機能しません。そのため、ここで設定した traversalAfter 値が失われます。2: ここでもノードをリークしていますが、いつリサイクルするべきかわかりません。
NodeInfoCompat と AccessibilityDelegateCompat を使用して Android の下位互換性をフックする方法を教えてください。
automation - adb shell で Talkback が有効にならない
adb shell settings put secure enabled_accessibility_services com.android.talkback/com.google.android.marvin.talkback.TalkBackService
adbシェルからトークバックを有効にするコマンドを試しました。トークバックのステータスを示す ui ボタンを切り替えていますが、トークバックは実際には有効になっていません。Android 6.0 のトークバックをプログラムで有効にしようとしています。それを有効にできる他の方法はありますか?