Android AccessibilityService无障碍服创建 与 权限判断
button 按钮的声明 与使用
Button button ; 声明按钮类型的 变量button = findViewById(R.id.button); 将Id为 button 的按钮 赋值给变量 button.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View v) {Toast.makeText(getApplicationContext(),"这是弹窗",Toast.LENGTH_SHORT).show();}});
textView.setText(check);
Android开发学习之Log的使用
Log(android.util.log)是Android Studio中的日志工具类,熟练使用log会对你以后的Android开发之旅有很大的帮助。
- log类有五个方法,分别是(级别由低到高):
1.Log.v():打印一些最为繁琐、意义不大的日志信息
2.Log.d():打印一些调试信息(logd+tab)
3.Log.i():打印一些比较重要的数据,可帮助你分析用户行为数据(logi+tab)
4.Log.w():打印一些警告信息,提示程序该处可能存在的风险(logw+tab)
5.Log.e():打印程序中的错误信息(loge+tab)
Android AccessibilityService无障碍服务(一)
简介: 创建一个类AccessibilitySampleService继承自AccessibilityService,并实现其接口方法,onAccessibilityEvent与onInterrupt。
创建一个类AccessibilitySampleService继承自AccessibilityService,并实现其接口方法,onAccessibilityEvent与onInterrupt。
创建 AccessibilitySampleService.java 类文件
public class AccessibilitySampleService extends AccessibilityService {private static final String TAG = "AccessibilityService";@Override public void onAccessibilityEvent(AccessibilityEvent event) {Log.e(TAG, "onAccessibilityEvent: ");}@Override public void onInterrupt() {Log.e(TAG, "onInterrupt: ");}
}
在AndroidManifest.xml文件中的application节点下配置service,其中android:label="@string/accessibility_tip"是在手机的设置中要显示的文字。
打开 AndroidManifest.xml 文件 在application标签 填写 和 activity 同级
<!-- 注册辅助功能服务 --><serviceandroid:name=".AccessibilitySampleService"android:enabled="true"android:exported="true"android:label="@string/accessibility_tip"android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"android:process=":BackgroundService"><intent-filter><action android:name="android.accessibilityservice.AccessibilityService" /></intent-filter><!-- 通过xml文件完成辅助功能相关配置,也可以在onServiceConnected中动态配置 --><meta-dataandroid:name="android.accessibilityservice"android:resource="@xml/accessibility_config" /></service>
打开 res 下 values 下的 strings.xml
文件内容 这里是存放 String 数据的 独立文件 ,方法后期维护
<string name="accessibility_tip">开启辅助功能Sample</string><string name="accessibility_desc">开启辅助功能,让你的手机更智能一点</string>
AndroidManifest.xml中的配置无障碍服务时在service节点下的meta-data中android:resource="@xml/accessibility_config"的文件内容如下:
在res文件夹下 添加 xml文件 并且创建service 配置文件 accessibility_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:canRetrieveWindowContent="true"android:description="@string/accessibility_desc"android:notificationTimeout="100" />
其中:
android:canRetrieveWindowContent=“true"获取窗口内容,android:description=”@string/accessibility_desc" 为详细描述,android:notificationTimeout=“100” 通知互动。配置完成之后,运行项目,可在Android手机的设置->更多设置->无障碍->服务下看到“开启辅助功能Sample”。
Android AccessibilityService无障碍服务(二)
创建一个类文件 OpenAccessibilitySettingHelper 后面好引用
/*** 开启无障碍服务帮助类* Created by mazaiting on 2017/8/18.*/
public class OpenAccessibilitySettingHelper {/*** 跳转到无障碍服务设置页面* @param context 设备上下文*/public static void jumpToSettingPage(Context context){Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);}/*** 判断是否有辅助功能权限* @return true 已开启* false 未开启*/public static boolean isAccessibilitySettingsOn(Context context,String className){if (context == null){return false;}ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningServiceInfo> runningServices =activityManager.getRunningServices(100);// 获取正在运行的服务列表if (runningServices.size()<0){return false;}for (int i=0;i<runningServices.size();i++){ComponentName service = runningServices.get(i).service;if (service.getClassName().equals(className)){return true;}}return false;}
}
在你的 MainActivity.java 中 的声明周期中 执行代码
也可以 卸载 函数中,,调用
if (!OpenAccessibilitySettingHelper.isAccessibilitySettingsOn(this,AccessibilitySampleService.class.getName())){// 判断服务是否开启OpenAccessibilitySettingHelper.jumpToSettingPage(this);// 跳转到开启页面}else {Toast.makeText(this, "服务已开启", Toast.LENGTH_SHORT).show();}
我的 MainActivity.java 用函数封装起来了
package com.example.accessibilityservice22;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;import com.example.accessibilityservice22.R;public class MainActivity extends AppCompatActivity {Button button ;TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button =findViewById(R.id.button);textView = findViewById(R.id.textView);}@Overrideprotected void onResume() {super.onResume();button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {check();}});}public void check () {if (!OpenAccessibilitySettingHelper.isAccessibilitySettingsOn(this,AccessibilitySampleService.class.getName())) {// 判断服务是否开启OpenAccessibilitySettingHelper.jumpToSettingPage(this);// 跳转到开启页面} else {Toast.makeText(this, "服务已开启", Toast.LENGTH_SHORT).show();}}}
Android AccessibilityService无障碍服创建 与 权限判断相关推荐
- Android ShortCut快捷方式的创建/删除和判断
ShortCut 快捷方式的创建和判断 一.相关介绍 1. 快捷方式的创建.删除通过广播实现 2. 也就是要传一个intent 3. 接受intent的这个广播接收器负责把intent传的数据写入到l ...
- android accessibilityservice自动点击_【Android】无障碍服务(一)入门轻踩
无障碍服务是一种应用,可提供界面增强功能,来协助残障用户或可能暂时无法与设备进行全面互动的用户完成操作.小编这边用无障碍服务实现一系列自动化操作,有点像按键精灵,踩了不少坑.首要部署声明才能被 And ...
- Android辅助功能(无障碍)使用---AccessibilityService
参考资料:https://github.com/PopFisher/AccessibilitySample 1.Android文档里AccessibilityService简介 辅助功能只在帮助残障人 ...
- android6.0麦克风权限,android 6.0权限检测以及6.0以下,麦克风、相机权限判断
android 6.0以上权限 android 6.0以上权限,我是通过PermissionsDispatcher进行申请,操作的,具体使用方法,见PermissionsDispatcher,Andr ...
- Android浮窗权限判断
在开启浮窗前,要判断一下,是否能够得到浮窗权限打开浮窗. 在方法中添加以下代码: //悬浮窗权限判断if (Settings.canDrawOverlays(MainActivity.this)) { ...
- android 6.0权限判断 音频 拍照 相册
/*------------------------------------------打开音频权限------------------------------------------------*/ ...
- Android定位权限判断及开启
最近在做基于高德sdk的一个定位的应用,遇到了定位权限判断错误的问题,之前查的是根据LocationManager来判断系统定位是否开启,原以为这个就可以判断应用是否具有定位权限,但是发现这个是用于判 ...
- android 行为采集,Android AccessibilityService实现第三方APP行为捕获
AccessibilityService实现行为捕获 语音:Kotlin 版本:1.2.41 最近接到一个很奇葩的需求:捕获系统语音通话聊天(包括微信.电话.QQ),把通话内容记录成音频文件上传到服务 ...
- android manifest 权限组,Android的单个或多个权限动态申请
前言 在Android 6.0(API 级别 23)以下申请权限是非常简单的,直接在AndroidManifest.xml这个配置文件中加入申请权限的列表就可以了,比如我要申请四个权限,如下: 但是在 ...
最新文章
- 读后感与机翻《基于理论的因果迁移:结合实例级的归纳和抽象级的结构学习》
- 常见的IE浏览器的一些兼容问题及解决方法
- 优雅的使用 PhpStorm 来开发 Laravel 项目
- 查看Servlet 3.0的新增功能
- 代码整洁之道,clean code
- Java虚拟机(十)——直接内存概述
- 二级计算机java2017级_2017计算机等级二级考试java练习题及答案
- mysql防注入插件_mybatis-plus插件使用的一些问题
- Linux的主动实行措施cron和crontab(1)
- 零基础学python电子书-零基础学Python(全彩版)
- 电工基础知识入门必背的知识
- SQL语句查询关键字
- 计算机专业公务员歧视,考研,是我这辈子最后悔的事?工作找不到,公务员不能考!...
- 2023年全国最新二级建造师精选真题及答案59
- B端产品:通过线上渠道增长
- navicat 无法连接mysql10060错误
- 华为环信“全场景云联络中心”联合方案正式发布
- Hands-On Machine Learning with Scikit-Learn TensorFlow 学习
- 防WiFi万能钥匙蹭网,隐藏ssid就可以了
- 左右可以滑动半年的超级日历,支持日历部分收起和自动重定向为北京时间
热门文章
- 二进制在数学中的妙用(转帖)
- JAVA中MAP的四种类型区别和常见的简单用法
- 微星电脑能装linux吗,如何将微星上网本的linux系统改为xp系统
- 憋在家里的年轻人,到底能有多无聊?
- The bean ‘xxx.FeignClientSpecification‘ could not be registered
- 关于iOS 输入法的一些问题
- HTTP请求错误状态码大全
- 如何批量生成彩色渐变二维码
- 获12w+星标的神仙文档再度上榜,简直是一套活生生自学Java的福星
- 杰理之三方通话回连问题和低电回连苹果手机的图标问题【篇】