2

我正在使用模拟器(android 2.3.3)

adb shell "am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Android Auto' -e phone 51115111"

这个命令只是帮助我启动“新联系人”并填写姓名和电话。我需要在屏幕上点击完成才能完成插入。

有没有办法在没有人工干预的情况下完成程序?

4

2 回答 2

8

@Shimon Elbaz 是对的。

“返回键”有助于保存更改。
对我来说(在 Android 4.4.2 上)下一个脚本有效:

adb shell am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Android Auto22232342' -e phone 51115111
adb shell input keyevent 4
adb shell input keyevent 4
adb shell input keyevent 4

我们需要按 HW Back 按钮 3 次:
- 第一次隐藏键盘
- 第二次关闭 ContactEditorActivity(保存联系人) - 第三次关闭联系信息活动

我的任务是在设备上添加 50 个联系人,为此我编写了一个简单的 bash 脚本:

contactCount=50
if (( $# != 0 ))
    then
        let contactCount=$1
fi
for (( c=0; c<contactCount; c++))
do
    adb shell am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Test'$c -e phone 511151$c
    adb shell input keyevent 4
    adb shell input keyevent 4
    adb shell input keyevent 4
    wait $pid
done
adb shell input keyevent 4
  1. 要添加 50 个联系人,请运行不带参数的脚本:

    ./script.sh

  2. 要添加其他联系人计数,请添加一个参数:

    ./script.sh

    前任。添加 3 个联系人:

    ./script.sh 3

另外,我认为有一些更简单的方法可以执行此操作,我会很高兴看到它 =)

感谢关注。

于 2014-04-16T15:43:48.890 回答
0

您可以使用关键事件。基本上 keyevents 也可以通过 adb shell 发送 - adb.exe shell input keyevent #

供应商之间的关键事件大多相似,您可以使用此图表找到正确的事件:

如果它与列表不匹配 - 尝试使用它。

另请注意,在许多设备中,一旦您打开带有信息的意图,按“Home”或“Return”键将自动保存更改。

于 2013-01-30T13:25:17.413 回答