首页 > 其他分享 >Android辅助功能

Android辅助功能

时间:2023-02-02 18:45:43浏览次数:35  
标签:功能 辅助 Log accessibilityEvent shutter TAG Android button onAccessibilityEvent

1:AccessibilityService

新建service

public class AccessibilityService extends android.accessibilityservice.AccessibilityService {
    private static final String TAG = "AccessibilityService";

    @Override
    public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
        Log.i(TAG, "onAccessibilityEvent: " + accessibilityEvent.getEventType());
        Log.i(TAG, "onAccessibilityEvent: event className:"+accessibilityEvent.getClassName());
    }

    @Override
    public void onInterrupt() {
        Log.i(TAG, "onInterrupt:");
    }
}

这里暂时先只添加日志输出。

2:注册service

        <service android:name=".AccessibilityService"
            android:label="@string/app_name"
            android:exported="true"
            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/phone_accessibility" />
        </service>

3: 添加resource

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeAllMask"
    android:accessibilityFeedbackType="feedbackGeneric"
    android:canPerformGestures="true"
    android:canRetrieveWindowContent="true"
    android:description="@string/accessibility_desc"
    android:notificationTimeout="100" />

4: 开启辅助功能

  Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
            startActivity(intent);

5:功能实现

这里简单的实现下打开oppo相机后的自动点击拍照。
这里可以编写onAccessibilityEvent方法中的代码了。

 Log.i(TAG, "onAccessibilityEvent: " + accessibilityEvent.getEventType());
        Log.i(TAG, "onAccessibilityEvent: event className:"+accessibilityEvent.getClassName());
        //校验版本
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2){
            return;
        }
        //获取nodeinfo
        AccessibilityNodeInfo rootInActiveWindow = getRootInActiveWindow();
        if (rootInActiveWindow==null){
            Log.i(TAG, "onAccessibilityEvent: rootInActiveWindow is null" );
            return;
        }
        //获取当前的classname, 是相机的话执行
        if (accessibilityEvent.getClassName().equals("com.oplus.camera.Camera")){
           //根据相机拍照按钮的id(monitor中获取ViewId)
            List<AccessibilityNodeInfo> shutter_button = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.oplus.camera:id/shutter_button");
            if (shutter_button!=null){
                for (AccessibilityNodeInfo accessibilityNodeInfo : shutter_button) {
                //执行点击事件
                    accessibilityNodeInfo.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    Toast.makeText(getApplicationContext(),"自动点击成功",Toast.LENGTH_LONG).show();
                }
            }
        }

标签:功能,辅助,Log,accessibilityEvent,shutter,TAG,Android,button,onAccessibilityEvent
From: https://www.cnblogs.com/zhjing/p/17087043.html

相关文章

  • Android联系人增删改查
    1:申请权限<uses-permissionandroid:name="android.permission.READ_CONTACTS"/><uses-permissionandroid:name="android.permission.WRITE_CONTACTS"/>2:读取......
  • MT8788 android 9.0 sensor 驱动移植
    1.硬件配置打开 MT8788 核心板原理图,配置GYRO(陀螺仪),ALSPS(光感),G-sensor(加速度)的ENIT和GPIO以及I2C,打开vendor\mediatek\proprietary\scripts\dct\DrvGen.......
  • Android 逆向
    1:apk文件结构如图所示:assets:存放应用程序的静态资源文件,如图片资源,json配置文件,html离线资源等。注意,assets目录下是支持任意深度的子目录。res:规定的指定文件,图......
  • 如何写出 react 功能
    1.react事件驱动到执行renderer渲染的基本流程   我个人写了2个月的react总结了一下,react相比于vue好像不是面向对象的框架一样,它更像是一个通过固定的......
  • Android Studi导出apk包自定义文件名
    在app的gradle配置文件中的release代码块中放置以下代码android.applicationVariants.all{variant->variant.outputs.all{output->if(outputFileNa......
  • 一文读懂SCADA系统的组件功能及应用
    什么是SCADASCADA是一个功能强大的控制系统,旨在收集,分析和可视化来自工业设备的数据。SCADA系统自动提取、监控、处理、分发、记录和显示从远程现场设备(如传感器、工厂机器......
  • 添加功能分析和添加功能实现
    添加功能分析   添加功能代码实现publicclassAddUserServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpSe......
  • 登录功能代码实现
    登录功能_代码实现publicclassLoginServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponserespo......
  • 博奥智源,老师定位分析仪软件功能开发详解
    1.采用B/S架构设计,支持通用浏览器进行远程访问进行管理;2.采用图像识别定位分析技术,智能识别教学行为,根据预设的跟踪分析逻辑触发跟踪信号,与录播主机进行跟踪数据对接;3.......
  • 设计模式落地实战 | 观察者模式 | 功能性QQ机器人封装思路
     情况简介对接qq机器人,使用.Netsdk,不同群消息不同处理方式,但群消息事件要同时下发执行,各个群之间不分前后 开始封装定义一个群消息事件的数据类,存储要下发的数据p......