要解决Android TalkBack会反复说“服务[我的应用名称]”的问题,可以通过以下代码示例来实现:
这个代码段中,android:packageNames属性的值应该替换为你的应用的包名。
import android.content.ComponentName;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取TalkBack服务的组件名称
ComponentName talkBackService = new ComponentName(this, "com.google.android.marvin.talkback.TalkBackService");
// 检查TalkBack服务是否已启用
PackageManager packageManager = getPackageManager();
if (packageManager.getComponentEnabledSetting(talkBackService) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {
// 将TalkBack服务名称更改为应用名称
packageManager.setComponentEnabledSetting(talkBackService, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
}
}
}
这样,Android TalkBack就不会再反复说“服务[我的应用名称]”了,而是使用你的应用名称作为服务名称进行语音提示。