android adb插入联系人并需要点击;“完成”;完成

android adb插入联系人并需要点击;“完成”;完成,android,android-activity,adb,Android,Android Activity,Adb,我正在使用emulator(android 2.3.3) 这个命令只是帮助我启动“新联系人”并填写姓名和电话。我需要点击屏幕上的done来完成插入 有没有办法不用人工干预就完成此过程?您可以使用按键事件。 基本上,keyevents可以通过adb外壳发送,也可以使用- adb.exe外壳输入键事件# 供应商之间的关键事件基本相似,您可以使用它来找到正确的事件: 如果它与列表不匹配,试着玩一下 另外请注意,在许多设备中,一旦您打开包含信息的意图,按“主页”或“返回”键将自动保存更改。@Shimon

我正在使用emulator(android 2.3.3)

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

有没有办法不用人工干预就完成此过程?

您可以使用按键事件。 基本上,keyevents可以通过adb外壳发送,也可以使用- adb.exe外壳输入键事件#

供应商之间的关键事件基本相似,您可以使用它来找到正确的事件:

如果它与列表不匹配,试着玩一下


另外请注意,在许多设备中,一旦您打开包含信息的意图,按“主页”或“返回”键将自动保存更改。

@Shimon Elbaz是正确的

“后退键”有助于保存更改。
对我来说(在安卓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次:
-1st隐藏键盘
-第二个关闭联系人编辑器活动(保存联系人) -第三次关闭联系人信息活动

我的任务是在设备上添加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
contactCount=50
如果($#!=0))
然后
让contactCount=1美元
fi

对于((c=0;cDid)有人找到实际的“将密钥另存为密钥”事件吗?或者是否有我可以通过ADB传递的选项?
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