TouchExplorationModeをオンにして、ホバーイベントを直接アプリケーションウィンドウに渡すことはできません。それは不可能。しかし、TouchExplorationModeをプログラムで有効にしたり無効にしたりすることはできないと思うのですか?これは間違いです。あなたのやり方は次のとおりです。
public class YourA11yService extends AccessibilityService {
private void enableTouchExploration() {
AccessibilityServiceInfo info = mInstance.getServiceInfo();
info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
mInstance.setServiceInfo(info);
}
private void disableTouchExploration() {
AccessibilityServiceInfo serviceInfo = mInstance.getServiceInfo();
serviceInfo.flags &= ~AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
mInstance.setServiceInfo(serviceInfo);
}
}
ただし、このコンテンツを見つけるためにタッチ探索モードは必要ありませんが、現在のウィンドウコンテンツ内のリストビューを見つけるだけです。あなたはそれに触れるためにそれに触れなければならないのはなぜですか?
EDIT: のAndroidManifest.xml
...
<service
android:name=".A11yService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/service_config" />
<
...
ServiceConfig.xml(R.xml.service_config)
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
...
android:canRequestTouchExplorationMode="true"
android:accessibilityFlags="flagIncludeNotImportantViews"
.../>
注:私は、足場の多くは、および他の本質的な特性を削除しました彼がこの作業をするために必要な最小限の設定でそれを煮沸してください。明らかに、これらのファイルの他の重要な側面があります!
こんにちはクリス、提案していただきありがとうございますが、動作しません。 それは、メタデータに設定されることなく、このフラグを設定すると、「JELLY_BEAN_MR1よりも高いAPIバージョン」 見るには機能しません。https://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo.html#FLAG_REQUEST_TOUCH_EXPLORATION_MODE また、アクセシビリティサービスから画面上のすべての情報を表示することはできません。これの例はリストビュー要素です - あなたはこれを隠すことができます。私は現時点でこのリンクを見つけることができませんが、特定の要素(???)を隠すことができると確信しています – Rhdev
UIを見ている - すべてのソースコードとその子供がいる場合は、それらを印刷して表示する。このメソッドを使用すると、それはリストビューになりますが、それ以上進みません。 – Rhdev
要素が不足しているためにan anserが更新されました。コードまたはXMLにフラグflagIncludeNotIMportantViewsを含める必要があります。 JEELY_BEAN_MR1に関しては、あなたは誤解しています。フラグを動的に適用することはできます。 XML構成とコードには違いはありません。 AOSPコードを調べると、xml configはサービス設定を読み込み、私が提供したコード行を適用します。とてもリテラルなものです。しかし、あなたが必要とするのは、そのフラグを許可するマニフェスト/サービス設定の行です。私はこれを答えに加えました。 – ChrisCM