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) {
//这个方法是我们用的最多的方法,我们会在这个方法里写大量的逻辑操作。
//通过对event的判断执行不同的操作
//当窗口发生的事件是我们配置监听的事件时,会回调此方法.会被调用多次
}
@Override
public void onInterrupt() {
//当服务要被中断时调用.会被调用多次
}
public void onReceiveMsg(Eventpic message) {
if (Build.VERSION.SDK_INT >= 30) {
screenshot();}
}
}
我这里加了一个通知,收到通知开始在无障碍服务里截屏
public void onReceiveMsg(Eventpic message) {
if (Build.VERSION.SDK_INT >= 30) {
screenshot();}
}
@RequiresApi(api = 30)
public void screenshot() {
System.out.println("AccessibilityService====SCREENSHOTtrying to capture");
takeScreenshot(0, getApplicationContext().getMainExecutor(), new AccessibilityService.TakeScreenshotCallback() { // from class: com.stardust.autojs.core.accessibility.AccessibilityService.2
@Override // android.accessibilityservice.AccessibilityService.TakeScreenshotCallback
public void onFailure(int i) {
System.out.println("AccessibilityService====SCREENSHOTFailed " + i);
}
@Override // android.accessibilityservice.AccessibilityService.TakeScreenshotCallback
public void onSuccess(@NonNull AccessibilityService.ScreenshotResult screenshotResult) {
System.out.println("AccessibilityService====SCREENSHOTSuccess1");
try {
Bitmap.createBitmap(Bitmap.wrapHardwareBuffer(screenshotResult.getHardwareBuffer(), screenshotResult.getColorSpace()), 0, 0, getScreenWidth(RsenAccessibilityService.this), getScreenHeight(RsenAccessibilityService.this)); //这里得到图片
} catch (Exception e) {
System.out.println("AccessibilityService====SCREENSHOT||screenshot()Exception:" + e.toString());
e.printStackTrace();
}
}
});
}