Accessibilityservice(辅助服务开发)学习笔记

AccessibilityService是Android用于辅助服务开发的技术,提供文字转语音等增强交互功能,尤其适用于有特殊需求的用户。服务在后台运行,系统会回调其方法以响应界面变化,如按钮或复选框的点击。onServiceConnected()是服务连接成功后的回调,常用于初始化设置。从Android 4.0开始,可通过AndroidManifest.xml配置 AccessibilityService的行为。
摘要由CSDN通过智能技术生成

       Accessibilityservice类用于辅助服务开发,提供像文字转语音的功能(不支持中文)等,可以加强用户界面的交互,方便像身体,视力,年龄等问题造成用户不能很好的和用户界面交换的情况。该辅助服务工作在后台,由系统调用,用户的界面的一些状态(比如 Button,CheckBox被点击了等)的改变可以通过回调Accessibilityservice方法来获得。

     首先介绍Accessibilityservice的几个方法:

     void onServiceConnected()这个方法是Accessibilityservice生命周期的一部分,当系统成功成功绑定到Accessibilityservice服务时会被回掉,所以可以在里面进行一些必要的初始化,比如Accessibilityservice的一些参数配置的。

 

  void onAccessibilityEvent(AccessibilityEvent event):被AccessibilityEvents回调,AccessibilityEvents当用户界面发生值得注意的事件(比如 Button,CheckBox被点击了等)又系统发送的一个Accessibility事件。比如在绑定了Accessibility服务的情况下点击用户界面的Button会回调此方法,通过event可以获取用户点击后发送来的信息。
 
void onInterrupt():这个在系统想要中断AccessibilityService返给的响应时会调用。在整个生命周期里会被调用多次。具体用下面的程序讲解,比如在打开系统的辅助功能界面后,点击触摸预览就会调用此方法。
  void onUnbind() - 可选。在系统将要关闭这个AccessibilityService会被调用。在这个方法中进行一些释放资源的工作。
    下面通过一个程序代码具体讲解:
     程序入口类代码:
 
 
public class MainActivity extends Activity { @Override   protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final String mAction = Settings.ACTION_ACCESSIBILITY_SETTINGS;//系统辅助功能Action  ImageView imageView = (ImageView) findViewById(R.id.imageView); Button stop = (Button) findViewById(R.id.stop); imageView.setOnClickListener(new View.OnClickListener() { @Override  public void onClick(View v) { Intent intent = new Intent(mAction); startActivity(intent); //点击开启系统辅助功能界面,在这里可以开启程序对应的辅助服务  } });  }
  下面讲一下实现Accessibilityservice需要的配置,在SDK的帮助文档里面给出了在AndroidManifest.xml文件里怎么配置Accessibilityservice:
 
<service android:name=".MyAccessibilityService" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> <intent-filter> <action android:name="android.accessibilityservice.AccessibilityService" /> </intent-filter> . . . </service>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值