仿EasyTouch实现一键返回功能

项目中有个类似EasyTouch点击返回键,实现返回的需求,参考了网上的一个例子点击打开链接。

首先需要用一个叫AccessibilityService类,这个服务不需要你在Activitu里面去开启,是属于系统级别的辅助服务,需要手动在设置里面开启,和我们平时使用的service不同。

定义一个BackService 继承AccessibilityService

package com.example.windowmanagertest;

import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;

public class BackService extends AccessibilityService {

	

	private static BackService context;
	@Override
	public void onAccessibilityEvent(AccessibilityEvent event) {
		Log.i("dly", "onAccessibilityEvent");
		context = this;
	}
	@Override
	public void onInterrupt() {
		// TODO Auto-generated method stub
	}

	@Override
	protected void onServiceConnected() {
		Log.i("dly", "onServiceConnected");
		context = this;
		
		super.onServiceConnected();
	}
	@Override
	public void onCreate() {
		Log.i("dly", "onCreate");
		context = this;
		super.onCreate();
	}
	public static void back() {
		context.performGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK);
	}
}


2.然后在Manifest中去注册这个服务


            
                
            
            
        

3.在res下面新建一个xml文件夹,里面新建taskbackconfig.xml,对应清单文件中android:resource





4.在你点击悬浮窗的时候调用一下BackService里面的back()方法就行了

BackService.back();
5.运行程序后,要在设置里面的辅助功能里面开启服务!

仿EasyTouch实现一键返回功能_第1张图片

你可能感兴趣的:(android)