使用 AccessibilityService 获取手机屏幕显示的Activity

简介: 使用 AccessibilityService 获取手机屏幕显示的Activity

使用 AccessibilityService 获取手机屏幕显示的Activity

1、重新AccessibilityService (没有这么简单)

class SimulatedClickService : AccessibilityService() {

   @RequiresApi(api = Build.VERSION_CODES.N)

   override fun onAccessibilityEvent(event: AccessibilityEvent) {

            var name = event.getClassName().toString();

              if (name.contains("com.")) {

                   if (name.contains(event.packageName)) {

                       name = name.replace(event.packageName.toString(), "");

                       name = name.replace("..", "")

                       if (name.get(0) == '.')

                           name = name.substring(1);

                   }

                   activityName = name

          //这就获取到了包名和top顶部的activity  

          //tip?.text="${event.packageName}${name}"  // 开启悬浮窗 可以显示到窗口上

            loge("${event.packageName}${name}")

     

}

   /**

    * 中断服务的回调

    */

   override fun onInterrupt() {

   

   }

   /**

    * 当服务启动时的回调,可以做一些初始化操作

    */

   @RequiresApi(api = Build.VERSION_CODES.N)

   override fun onServiceConnected() {

   }

}


2、配置AccessibilityService在AndroidManifest

             

                   android:name=".SimulatedClickService"

                   android:enabled="true"

                   android:exported="true"

                   android:label="@string/click_window_screen"

                   android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">

                 

                     

                 

                 

                       android:name="android.accessibilityservice"

                       android:resource="@xml/accessibility_service_config" />

             

3、配置AccessibilityService在xml

在res下的xml文件下新建accessibility_service_config.xml

<?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:accessibilityFlags="flagDefault"
    android:canPerformGestures="true"
    android:description="@string/app_name"
    android:packageNames="com.duiyi.simulatedclick" />

想知道里面的具体含义可以去百度,百度一大堆


4、开启无障碍

@RequiresApi(api = Build.VERSION_CODES.M)
    fun startFloatingService() {
        if (!Settings.canDrawOverlays(this)) {
            startActivityForResult(
                Intent(
                    Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse(
                        "package:$packageName"
                    )
                ), 0x0002
            )
        } else {
            try {
            try {
                startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS))
            } catch (e: Exception) {
                Log.i(TAG, "start ACTION_ACCESSIBILITY_SETTINGS fail: " + e.message)
                startActivity(Intent(Settings.ACTION_SETTINGS))
            }
        }
    }


目录
相关文章
|
移动开发 前端开发 JavaScript
【值得收藏】HTML5使用多种方法实现移动页面自适应手机屏幕的方法总结
随机智能手机,平板等智能移动设备的普及。移动端是我们目前接触最多的页面展示终端,不管是对于开发者还是其他普通的使用者都是普遍的存在,而且移动终端的使用比电脑更广泛,更频繁,特别是当微信平台等变成我们日常使用工具之后。所以对于开发者来说,不管任何开发任何界面都需要着重考虑页面对移动设备的兼容以及自适应。才能让用户体验性更好。
1479 0
|
2月前
|
编解码 人工智能 自然语言处理
让大模型理解手机屏幕,苹果多模态Ferret-UI用自然语言操控手机
【5月更文挑战第29天】苹果推出Ferret-UI,一个结合图像识别和自然语言处理的多模态大语言模型,允许用户通过自然语言指令操控手机。该系统能适应不同屏幕布局,识别UI元素并执行相应操作,有望变革手机交互方式,提升无障碍体验,并在测试和开发中发挥作用。但需面对屏幕多样性及准确性挑战。[论文链接](https://arxiv.org/pdf/2404.05719.pdf)
51 3
|
2月前
|
编解码 移动开发 安全
如何让你的APP变小及手机各屏幕尺寸
如何让你的APP变小及手机各屏幕尺寸
55 0
为什么香肠能激活手机屏幕,手套不能
这是一个简单的科普文章 2010年 韩国经历了一个特别寒冷的冬天,人们戴着手套时 无法启动智能手机
|
11月前
|
API Android开发
Android 中获取手机屏幕的宽度和高度(单位为像素)
Android 中获取手机屏幕的宽度和高度(单位为像素)
247 0
|
Android开发
Android实现手机和电脑屏幕共享
Android实现手机和电脑屏幕共享
|
Windows
【电脑控制手机屏幕】windows11、10自带投屏功能,三步解决
想用电脑控制手机,但是下载第三方软件好麻烦,只需三步骤即可使用windows系统自带投屏插件实现投屏功能
1122 0
|
编解码 移动开发 前端开发
一款超强的手机屏幕投影工具
一款超强的手机屏幕投影工具
一款超强的手机屏幕投影工具
|
小程序
如何让你的小游戏适配不同尺寸的手机屏幕
本文主要内容:教你如何对游戏中的 UI,背景以及内容进行不同尺寸屏幕的适配,让你的小游戏在各种尺寸的屏幕上,都展示出最好的一面。 如果你没有任何的游戏开发经验,欢迎观看我的“人人都能做游戏”系列视频教程,它会手把手的教你做出自己的第一个小游戏。
392 0
|
前端开发
「CSS畅想」我的发呆专属,反复解锁手机屏幕
前端玩转CSS,可以创造出不少有趣的效果。今天实现了一个解锁手机屏幕的效果,简单的快乐。
144 1