Я хочу создать приложение для Android, которое «сканирует» другие приложения, и узнает, есть ли кнопки и т. Д. Некоторые приложения, например WhatsApp, не позволяют третьим частям перемещаться в приложение, поэтому Я, хотя это может быть решением проблемы доступности. Теперь проблема в том, что я никогда не использовал Accessibility, так может кто-то из вас может показать мне, как «сканировать» макет приложения, чтобы найти кнопки? Большое спасибоИспользование доступности
ответ
Что вы ищете, это Служба специальных возможностей. Настройка службы доступности несколько сложна. Я создал репозиторий кода шаблона доступности, который настраивает AccessibilityService, который регистрирует иерархию узлов в LogCat, и имеет активность по умолчанию для параметров проекта, настроенную как активность настроек. Вот некоторые из основных моментов, поскольку мне не нравится просто публиковать репозитории github в качестве ответов. Обратите внимание, что я использую много собственных библиотек. CLog - это библиотека протоколирования, а AndroidAccessibilityUtils обертывает информацию о узле некоторыми общедоступными функциями. Вы можете найти ссылки на зависимости в файле build.gradle в репозитории github внизу. Вот некоторые основные моменты кода.
Ваш файл manifest.xml будет существенно отличаться от деятельности, и должен содержать запись, как это в элементе Application:
<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>
Сначала вам нужно создать подкласс Accessibility услуг:
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.");
}
}
Это основная часть основных моментов. У вас также должен быть XML-код «service_config» со свойствами, как указано в изменениях в файле манифеста XML. Более подробную информацию и разумную стартовую точку можно найти в репозитории с открытым исходным кодом на GitHub.
https://github.com/chriscm2006/Android-Accessibility-Service-Boilerplate
- 1. C# ConcurrentDictionary использование несовместимой доступности?
- 2. Использование WhoIs для определения доступности домена
- 3. Использование пользовательской Caret в JTextField для доступности
- 4. Использование доступности для хранения другой информации?
- 5. Уровень доступности библиотеки высокой доступности для .NET
- 6. о MySQL высокой доступности
- 7. Проверка доступности
- 8. Javascript и возможности доступности
- 9. AFNetworking проверка доступности
- 10. Проблема доступности в jquery datepicker
- 11. ReactiveCocoa: Правильное использование сигналов для проверки доступности объекта
- 12. Использование AMQP (RabbitMQ) для высокой доступности в моих приложениях
- 13. Получение доступности от datepicker
- 14. Непоследовательный параметр параметра доступности
- 15. Проблема доступности идиомы PIMPL
- 16. Непоследовательная ошибка доступности
- 17. Protractor Отчет о доступности
- 18. WPF Цвета - соображения доступности?
- 19. Андроид Экран увеличения доступности
- 20. Generic Repository Противоречивой доступности
- 21. Спарк обеспечения высокой доступности
- 22. Отсутствие доступности CDN
- 23. Проверка доступности тренера
- 24. openstack: видимость зоны доступности
- 25. Зоны доступности Amazon
- 26. Стратегия доступности шрифтовой семьи
- 27. Обзор доступности привязки WCF
- 28. Проверка доступности продукта
- 29. Изменить порядок фокусировки доступности
- 30. Метка доступности в UIAutomation
Я не понимаю, почему это было бы закрыто. Мне кажется, что кто-то голосует, чтобы закрыть это, непонятно. Телефонный код службы поддержки Android - отличный вопрос! Я буду работать над ответом. Я имел в виду опубликовать репозиторий github с некоторым шаблоном Service A11y Service. Дайте мне 24 часа! И не закрывайте этот вопрос, просто потому, что вы этого не понимаете! – ChrisCM