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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值