Android -- > 무장 애 서비스 (AccessibilityService) 개발 안내 (주로 보너스 쟁탈, 인근 친구 추가 등 기능)
9625 단어 Android
무장 애 공식 안내:https://developer.android.com/guide/topics/ui/accessibility/index.html
추천 박문:http://www.tuicool.com/articles/FRFnq2 http://blog.csdn.net/itfootball/article/details/21953763
1: AndroidManifest. xml 추가 설명
<manifest>
<application>
<service android:name = ".RsenAccessibilityService"
-- . -->
android:label = "@string/accessibility_service_label"
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/accessibility_service_config" />
service>
<uses-permission android:name = "android.permission.BIND_ACCESSIBILITY_SERVICE" />
application>
manifest>
주의: RsenAccessibilityService 는 AccessibilityService 를 계승 하고 실현 해 야 합 니 다.
public void onAccessibilityEvent(AccessibilityEvent event) {}
public void onInterrupt() {}
이 두 가지 방법.
1.1: accessibility_service_config. xml 내용
xml version="1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"
// ,
android:description="@string/app_accessibility_description"
// EventTypes , ,
android:packageNames="com.tencent.mm,com.tencent.mobileqq"
//
android:accessibilityEventTypes="typeAllMask"
// : . " ".
android:accessibilityFeedbackType="feedbackAllMask"
// 2 ,
android:notificationTimeout="100"
// , , Activity ;
android:settingsActivity="com.angcyo.SettingsActivity"
// ,
android:accessibilityFlags="flagDefault"
// , . ;
android:canRetrieveWindowContent="true"/>
구체 적 인 속성 설명:https://developer.android.com/guide/topics/ui/accessibility/services.html
2: Accessibility Service 서비스의 작성
public class RsenAccessibilityService extends AccessibilityService {
@Override
protected void onServiceConnected() {
super.onServiceConnected();
// setServiceInfo();// xml
}
@Override
public boolean onUnbind(Intent intent) {
// ,
return super.onUnbind(intent);
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// , .
}
@Override
public void onInterrupt() {
// .
}
}
이 단계 에 도달 하면 프로그램 은 이미 정상적으로 운행 할 수 있다.com. tencent. mm, com. tencent. mobileqq 두 가방 의 프로그램 에 우리 가 감청 한 이벤트 (android: accessibility EventTypes = "typeAllMask") 가 있 으 면 onAccessibility Event 방법 이 바 뀝 니 다. 그러면 다음 작업 을 진행 할 수 있 습 니 다.(메모: 시스템 에서 이 서 비 스 를 시작 해 야 합 니 다)
상용 이벤트:
TYPE_WINDOW_STATE_CHANGED :32
TYPE_VIEW_SELECTED :4
TYPE_VIEW_FOCUSED :8
TYPE_WINDOW_CONTENT_CHANGED :2048
TYPE_VIEW_CLICKED :1
TYPE_VIEW_SCROLLED :4096
TYPE_VIEW_TEXT_SELECTION_CHANGED :8192
TYPE_VIEW_TEXT_CHANGED :16
모든 이벤트 및 상세 정보:https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html
3: 자주 쓰 는 방법
AccessibilityService.performGlobalAction(GLOBAL_ACTION_BACK);//
//
private boolean isServiceEnabled() {
AccessibilityManager accessibilityManager = (AccessibilityManager)getSystemService(Context.ACCESSIBILITY_SERVICE);
List accessibilityServices =
accessibilityManager.getEnabledAccessibilityServiceList(
AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
for (AccessibilityServiceInfo info : accessibilityServices) {
if (info.getId().contains("com.angcyo.accessibility.RsenAccessibilityService")) {
return true;
}
}
return false;
}
//
Intent accessibleIntent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(accessibleIntent);
// , View
AccessibilityNodeInfo source = event.getSource();
AccessibilityNodeInfo listNode = source.getChild(0).getChild(1);
List itemList = listNode.findAccessibilityNodeInfosByText(" ");
// getParent(), getChild(), ;
// View , " "," ",
//info.performAction(AccessibilityNodeInfo.ACTION_CLICK);
//listNode.performAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
// , , ;
이로써 글 은 끝 났 습 니 다. 의문 이 있 으 시 면 QQ 군: 274306954 가입 을 환영 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.