Android adb 开启/关闭 TalkBack

Android adb 开启/关闭 TalkBack

在为Android app 测试无障碍功能兼容性时,如果要在设置中启用/关闭TalkBack服务有时会比较繁琐,尤其是关闭服务时(在TalkBack模式下点击要双击)。如果测试用的手机可以连接adb调试,使用adb是很方便的。

1. 通过Adb设置TalkBack

(1) 检查状态

adb shell settings get secure enabled_accessibility_services

如果已经有无障碍服务启用,将会列出,否则输出 null。

(2) 启用TalkBack

adb shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/com.google.android.marvin.talkback.TalkBackService

(3) 关闭TalkBack

注意:此命令会关闭全部无障碍服务

adb shell settings put secure enabled_accessibility_services null

2. 使用Bat文件简化操作

如果经常使用的话,将这些命令写入到Bat文件会更方便

status 列出正在运行的无障碍服务

enable 开启TalkBack

disable 关闭TalkBack

help 参数列表

[有多个adb设备时 -target 选择一个已连接adb的设备]

@echo off

:: TalkBack Control Script

echo.

:: Check if the user provided a command

if "%1"=="" (

echo Error: Please provide a command. Available commands: status, enable, disable

exit /b

)

set TARGET_DEVICE=

:: Check if -target parameter is provided

if "%2"=="-target" (

REM Store the value of the -target parameter

set TARGET_DEVICE=%3

)

:: View TalkBack status

if "%1"=="status" (

adb devices -l

echo Fetching TalkBack status...

if "%TARGET_DEVICE%"=="" (

adb shell settings get secure enabled_accessibility_services

) else (

adb -s %TARGET_DEVICE% shell settings get secure enabled_accessibility_services

)

if %ERRORLEVEL% neq 0 (

echo Error...Check adb connection and adb logs[use -target to select device]

exit /b

)

exit /b

)

:: Enable TalkBack

if "%1"=="enable" (

adb devices -l

echo Enabling TalkBack service...

if "%TARGET_DEVICE%"=="" (

adb shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/com.google.android.marvin.talkback.TalkBackService

) else (

adb -s %TARGET_DEVICE% shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/com.google.android.marvin.talkback.TalkBackService

)

if %ERRORLEVEL% neq 0 (

echo Error...Check adb connection and adb logs[use -target to select device]

exit /b

)

exit /b

)

:: Disable TalkBack

if "%1"=="disable" (

adb devices -l

echo Disabling TalkBack service...

if "%TARGET_DEVICE%"=="" (

adb shell settings put secure enabled_accessibility_services null

) else (

adb -s %TARGET_DEVICE% shell settings put secure enabled_accessibility_services null

)

if %ERRORLEVEL% neq 0 (

echo Error...Check adb connection and adb logs[use -target to select device]

exit /b

)

exit /b

)

:: Help

if "%1"=="help" (

echo The commands are as follows:

echo status list all running accessibility services

echo enable enable TalkBack

echo disable disable TalkBack

echo -target select target serial if multiple devices are connected to adb

exit /b

)

:: Invalid command

echo Error: Invalid command "%1". Available commands: status, enable, disable, help

exit /b

示例:

单个设备直接使用命令即可

PS D:\Example> ./talkback.bat enable

List of devices attached

N9HGJYMJZXLR6LH7 device product:AN200 model:OPA150 device:AN200 transport_id:1

Enabling TalkBack service...

PS D:\Example>

如果有多个设备需要通过 -target指定

PS D:\Example> ./talkback.bat enable -target N9HGJYMJZXLR6LH7

List of devices attached

N9HGJYMJZXLR6LH7 device product:AN200 model:OPA150 device:AN200 transport_id:5

localhost:16416 device product:CC606 model:AS_A99 device:CC606 transport_id:4

Enabling TalkBack service...

PS D:\Example>

此时目标(物理机)上打开了TalkBack, 语音提示 "TalkBack 已开启"

另外的disable, status使用方法也是如此

3. TalkBack介绍

TalkBack 是 Android 系统内置的屏幕阅读器,用于帮助视力受限的用户操作智能手机。启用 TalkBack 后,手机会通过语音向用户反馈当前屏幕上的信息,用户可以通过手势与手机交互。比如,用户触摸屏幕上的某个区域时,TalkBack 会读出该区域的内容,帮助用户理解界面。

通过 TalkBack,用户可以独立使用手机进行打电话、发短信、浏览网页、使用应用程序等操作,而无需依赖视觉信息。

1. 语音反馈

TalkBack 会实时读出屏幕上显示的文字内容,如应用名称、按钮、文本框等。当用户触摸或选中某个元素时,系统会通过语音告知用户当前选择的内容。例如,若用户触摸到一个按钮,TalkBack 会说出按钮的名称,如“发送按钮”。

2. 手势操作

TalkBack 支持各种手势操作,用户可以通过不同的手势来控制手机。例如:

单击:选择当前项双击:激活选中的项上下滑动:翻动屏幕内容左右滑动:切换选项两指滑动:滚动页面等

参考资料

官方安卓无障碍开发设计指南

让应用使用起来更没有障碍 | App quality | Android Developers