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这个配置文件中加入申请权限的列表就可以了,比如我要申请四个权限,如下: 但是在 ...
最新文章
- 5G到底有多块?刚刚5G商用牌照正式发布,一共 4 张!
- java操作storm,Storm集群常用批量操作命令
- 【Linux 】使用 Shell 批量重命名文件名称
- 87-区间线段树(板子)--那个苑区的人最瘦
- 3000类别,20万个标注,山师等推出大规模Logo检测数据集:LogoDet-3K
- 在 iPhone 中设置 APP 限制使用时间的方法
- socket,ioctl获取ip
- 190408每日一句
- Visio 2003 sp3下载
- ipv6测试工具-支持ipv6的web压力测试工具curl-load
- 点下确认的那一刻,我的大脑在发生些什么?
- CentOS解决nginx autoindex 截断文件名,末尾出现乱码
- 基于盲估计和ICA的单通道盲分离算法–Matlab仿真
- TSP问题的解法(java版)
- 商业保理与 P2P 是如何结合运作的
- 洛谷-4735 最大异或和 /【模板】可持久化Trie
- 如何优化cocos2d程序的内存使用和程序大小
- grpc协议_gRPC和协议缓冲区简介
- java鬼吹灯搬山法杖_《鬼吹灯》:深度解析搬山鹧鸪哨,为寻找雮尘珠的悲惨人生...
- 软件测试(五)敏捷开发
热门文章
- malloc的强制转换
- Oracle Workflow Demo 1 - 一个简单的请假申请工作流
- 草稿——记录一下计网学习问题以及redis学习日志
- Bootstrap4官方文档 | v4核心 -- 组件(一)
- 论文《A Neural Influence Diffusion Model for Social Recommendation》阅读
- 拼多多上货助理批量上货的步骤
- js 社会主义点击事件
- php多张图片制作成视频教程,PS如何将一张图片做成多张图片叠加效果
- 据说可以让男人看一遍就哭的文章
- 用win-acme生成免费的泛域名证书,域名使用的阿里云