问题
以前碰到过这样的问题,在进行Android的自动化测试中,对Wifi和蓝牙的测试时,测试打开和关闭设备,但是对于验证设备是否真正被打开或者关闭时,有点问题。由于Android uiautomatorviewer无法获得状态栏的布局,所以想通过状态栏的图标验证wifi或者蓝牙是否打开就比较困难。后来只能使用接口进行验证。
dumpsys
Android dumpsys命令主要是用来查看系统服务状态的信息。因此可以用该命令查看Android中wifi或者蓝牙服务的状态。验证服务中对应设备是否打开。直接看结果。
shell@HNKIW-Q:/ $ dumpsys bluetooth_manager
Bluetooth Status
enabled: true
state: 12
address: 74:A5:28:62:6D:3F
name: KIW-AL10
Bonded devices:
00:F8:1C:08:99:7C [BR/EDR] HUAWEI AM04
FC:58:FA:B3:15:D2 [BR/EDR] HUAWEI AM10
看到enable信息就懂了吧,可以把蓝牙关闭再试一下。
接下来看wifi,wifi服务的信息比较多,因此查看时我使用了more命令进行分页,防止有效信息被冲掉。同样可以打开wifi,然后查看一下输出信息。
shell@HNKIW-Q:/ $ dumpsys wifi | more
Wi-Fi is disabled
Stay-awake conditions: 0
mMulticastEnabled 0
mMulticastDisabled 0
mInIdleMode false
mScanPending false
WifiController:
total records=39656
通过dumpsys statusbar也能看到部分信息,以Bluetooth为例,将Bluetooth关闭后,发现在Bluetooth信息中的visible消失了。
shell@HNKIW-Q:/ $ dumpsys statusbar
Icon list:
0: (managed_profile) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f02033f) user=0 )
1: (ime) null
2: (sync_failing) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f020401) user=0 )
3: (sync_active) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f020400) user=0 )
4: (cast) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f0202c7) user=0 )
5: (location) null
6: (bluetooth) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f0202d7) visible user=0 )
7: (powersavingmode) null
8: (earphone) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f020245) user=0 )
9: (nfc) null
10: (tty) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f020415) user=0 )
11: (speakerphone) null
12: (zen) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f020435) user=0 )
13: (mute) null
14: (volume) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f020344) user=0 )
15: (wifi) null
16: (cdma_eri) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f020346) user=0 )
17: (data_connection) null
18: (phone_evdo_signal) null
19: (phone_signal) null
20: (battery) null
21: (alarm_clock) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f02026c) visible user=0 )
22: (secure) null
23: (clock) null
24: (volte_call) StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.android.systemui id=0x7f02033c) user=0 )
25: (eyes_protect) null
mDisabled1=0x0
mDisabled2=0x0
mDisableRecords.size=0