button 按钮的声明 与使用
Button button ; 声明按钮类型的 变量
button = findViewById(R.id.button); 将Id为 button 的按钮 赋值给变量
button.setOnClickListener(new View.OnClickListener() {
@Override
public 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 同级
<!-- 注册辅助功能服务 -->
<service
android: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-data
android: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;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button =findViewById(R.id.button);
textView = findViewById(R.id.textView);
}
@Override
protected void onResume() {
super.onResume();
button.setOnClickListener(new View.OnClickListener() {
@Override
public 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的创建和使用,包括如何继承 AccessibilityService 类并实现接口方法,以及在AndroidManifest.xml中的配置。此外,还讲解了Log工具类的使用,包括不同级别的日志打印方法。
3797

被折叠的 条评论
为什么被折叠?



