如何以可编程方式打开和关闭辅助功能服务?

时间:2013-05-13 04:18:31

标签: android accessibility talkback

手动它可以通过设置菜单来完成,但有没有一个API android暴露通过一些函数调用来改变这个设置?

我想要实现的是在我的应用运行时禁用TalkBack。更精确我只想禁用TalkBack的Explore By Touch功能。

所以这些都可以做到

a)禁用Accessiblity服务或
b)禁用TalkBack或
c)禁用TalkBack功能触摸浏览

2 个答案:

答案 0 :(得分:0)

这个晚了一点,但也许它会帮助别人。

在我的主要课程中,我使用了一个针对我的辅助功能服务类的意图。我有一个开关开关,我将通过一个布尔值来判断我是否想要访问

public class MainActivity extends AppCompatActivity {

Switch onOffSwitch;
Intent serviceIntent;

public void onOff(View view){
    if(onOffSwitch.isChecked()){
        Log.i("Main Switch", "Turn on please");
        serviceIntent.putExtra("onOffService", true);
    }
    else{
        Log.i("Main Switch", "Turn off please");
        serviceIntent.putExtra("onOffService", false);
    }

    this.startService(serviceIntent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    onOffSwitch = (Switch) findViewById(R.id.onOffSwitch);
    serviceIntent= new Intent(this, myService.class);

}
}

然后在myService类中,我将使用onStartCommand接收intent。这似乎对我来说很好。

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    onOffService = intent.getBooleanExtra("onOffService", true);
    return super.onStartCommand(intent, flags, startId);
}

然后我会使用boolean inside函数来确定我是否希望服务处于活动状态。 希望这有帮助!

答案 1 :(得分:0)

您只需拨打

即可关闭辅助功能服务 $con->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);

注意:这也将关闭“设置”中的“服务”。您需要再次从用户重新获取。
如果你想暂时关闭,请改用Blazej Gawlik方式。