日期:2014-05-16 浏览次数:21238 次
?
在网络上查找了一下使用adb命令来控制真机的横竖屏的命令,普遍找到的结果是:
adb shell service call window 2013 i32 0(设置横屏)
adb shell service call window 2013 i32 1(设置竖屏)
?
但是在真机(root过)上测试普遍没有通过,会有出错信息。(Result: Parcel(Error: 0xffffffb6 "Not a data message"))
?
查看一下service的使用说明
adb shell service --help
unknown option -- -unknown option -- eunknown option -- lunknown option -- pUsage: service [-h|-?]
? ? ? ?service list
? ? ? ?service check SERVICE
? ? ? ?service call SERVICE CODE [i32 INT | s16 STR] ...
Options:
? ?i32: Write the integer INT into the send parcel.
? ?s16: Write the UTF-16 string STR into the send parcel.
?
首先,service list很明显就是查看service列表啦!
其次,service check SERVICE就是检测服务是否存在啦!
最后,service call SERVICE CODE [i32 INT | s16 STR] ...SERVICE可从list中获取,CODE的获取方法(http://xtor.warp.es/?p=1093,CODE列表:http://xtor.warp.es/wp-content//uploads/2011/03/android_transaction_codes.txt),但是发现看到的不是很准确,(这个可以自己写个循环脚本试验一下)。i32代表数字,s16代表字符串。
?
本人找不到真正代表window横竖屏的CODE,所以写了个循环脚本,通过观察现象,找到了对应的CODE,那就是74。
adb shell service call window 74 i32 0(设置横屏)
adb shell service call window 74 i32 1(设置竖屏)
?
符上脚本代码:
#!bin/bash count=0 while [ "$count" -lt 1000 ]; do echo "$count" adb shell service call window "$count" i32 0 count=$(($count+1)) done?