他のアプリケーションのレイアウトを「スキャン」してボタンなどがあるかどうかを調べるアンドロイドアプリを作成します。 whatsappのような一部のアプリケーションでは、私はアクセシビリティを使用することが解決策になるかもしれませんが。 問題は、私がアクセシビリティを一度も使用したことがないことです。誰かがボタンを見つけるためにアプリのレイアウトを「スキャンする」方法を教えてください。 ありがとうございましたアクセシビリティの使用
0
A
答えて
0
あなたが探しているのは、アクセシビリティサービスです。アクセシビリティサービスの設定はやや複雑です。 LogCatにノード階層を記録するAccessibilityServiceを設定し、デフォルトのプロジェクト設定アクティビティを設定アクティビティとして設定したアクセス可能な定型コードのリポジトリを設定しました。ここではいくつかのハイライトがありますが、github reposを回答として投稿するのは嫌です。私は自分のライブラリをたくさん使っています。 CLogはロギングライブラリであり、AndroidAccessibilityUtilsはいくつかの共通ユーティリティ関数でノード情報をラップします。下のgithubリポジトリのbuild.gradleファイルで、依存関係の参照を見つけることができます。ここにいくつかのコードのハイライトがあります。
あなたのManifest.xmlファイルが活動とは大きく異なることになるだろうし、あなたのアプリケーションの要素で、このようなエントリが含まれている必要があります:あなたはアクセシビリティサービスのサブクラスを作成する必要が
<application .... >
...
<service
android:name="com.moba11y.basicaccessibilityservice.BasicAccessibilityService"
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" />
</service>
...
</application>
ファースト:
public class BasicAccessibilityService extends AccessibilityService {
static {
CLog.initialize(BasicAccessibilityService.class.getSimpleName(), BuildConfig.DEBUG);
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
CLog.d(event.toString());
switch (event.getEventType()) {
//On Gesture events print out the entire view heirarchy!
case AccessibilityEvent.TYPE_GESTURE_DETECTION_START:
CLog.d(A11yNodeInfo.wrap(getRootInActiveWindow()).toViewHeirarchy());
default: {
//If the event has a source, let's print it out separately.
if (event.getSource() != null) {
CLog.d(A11yNodeInfo.wrap(event.getSource()).toViewHeirarchy());
}
}
}
}
@Override
public void onInterrupt() {
CLog.e("Service Interrupted: Have never actually had this happen.");
}
}
これはハイライトの大部分です。また、Manifest XMLファイルの変更で参照されているように、プロパティを持つ "service_config" XMLも必要です。 GitHubのオープンソースリポジトリには、より詳細な情報と、妥当なスタローラポイントがあります。
https://github.com/chriscm2006/Android-Accessibility-Service-Boilerplate
関連する問題
- 1. アクセシビリティとjavascriptを使用
- 2. qtpを使用したアクセシビリティ
- 3. iOS UITableViewアクセシビリティを使用した編集
- 4. アクセシビリティ:aria-liveを使用するページローダーインジケータ
- 5. Webページ用のMac VoiceOverを使用したアクセシビリティのテスト
- 6. リアクションネイティブのアクセシビリティ
- 7. ツールチップのアクセシビリティ
- 8. UIStepperのアクセシビリティ
- 9. JavaScriptのアクセシビリティ
- 10. Google Chromeのアクセシビリティ
- 11. ビデオのアクセシビリティ
- 12. スクリーンリーダーのアクセシビリティ
- 13. アクセシビリティNodeInfoの値
- 14. セルフディスエーブルボタン、アクセシビリティ
- 15. サイトマップ - オーバレイの使用に関するアクセシビリティに関する質問?
- 16. アクセシビリティと形質の使用は何ですか?
- 17. Android - アクセシビリティ - キャプション用の最小SDK
- 18. Androidのプリファレンスタグのアクセシビリティ
- 19. Vaadinグリッドのアクセシビリティ - ポリマー
- 20. ZKのデータセットとアクセシビリティ
- 21. レイアウト上のXamarin.Formsアクセシビリティ
- 22. インターフェイスとそのアクセシビリティ
- 23. Androidアクセシビリティの問題
- 24. UIViewアクセシビリティの問題
- 25. アクセシビリティのフォントサイズとUI
- 26. iOSアクセシビリティの問題
- 27. iPhone MapKit:アノテーションのアクセシビリティ
- 28. アクセシビリティ(JAWS) - jQueryで選択したライブラリを使用したドロップダウンリスト
- 29. アクセシビリティ・ネイティブ・アプリケーションでAxios GETを使用する
- 30. Cocoa:アクセシビリティを使用するウィンドウを非表示にする
これはなぜ閉鎖されるのかわかりません。これを閉じようと投票した人が質問を誤解しているような気がします。 Android Accessibility Serviceの定型コードは大きな問題です。私は答えに取り組むだろう。私はいくつかのA11y Serviceの定型文を使ってgithub repoを投稿することを意味してきました。私に24時間を与える!あなたがそれを理解していないからといって、この質問を閉じないでください! – ChrisCM