如何通过auto.js命令打开某个微信联系人?

想做一个定时任务 每天定时给对方发送微信信息,可是不知道怎么调用联系人

就一个的话,直接保存联系人到桌面

@atjl 我的意思是通过auto.js调用 比如说我要每天早上和人发送个信息 我总不是起来打开微信到联系人在运行auto.js 而是定时发送 我不用管晒

launchApp("微信");
text("微信").waitFor();
var infos = id("com.tencent.mm:id/apv").find();
if (infos) {
infos.each(function (info) {
if (info.text() == "张三") {
click(info.bounds().centerX(), info.bounds().centerY());
text("张三").waitFor();
var sendTxt = id("com.tencent.mm:id/aaa").untilFindOne();
if (sendTxt) {
sendTxt.setText("你要发送的消息");
click(sendTxt.bounds().centerX(), sendTxt.bounds().centerY());
sleep(500);
//发送按钮
var sendBtn = id("com.tencent.mm:id/aag").untilFindOne();
if (sendBtn) {
click(sendBtn.bounds().centerX(), sendBtn.bounds().centerY());
sleep(500);
//返回联系人首页
sendMsgBack();
}
}
}
});
}

function sendMsgBack() {
var backBtn = id("android:id/text1").untilFindOne();
if (backBtn) {
click(backBtn.bounds().centerX(), backBtn.bounds().centerY());
}
}
有什么坑自己踩吧,Autojs支持把脚本设置为每日定时执行

最后由 cainkid 编辑

下面是用java实现的,调用安卓快捷方式的代码,可以有点启发

//获取到所有快捷方式 
Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
List < ResolveInfo > shortcuts = getPackageManager().queryIntentActivities(shortcutsIntent, 0);
for (ResolveInfo resolveInfo : shortcuts)
{
    String name = resolveInfo.activityInfo.applicationInfo.packageName;
    String activityName = resolveInfo.activityInfo.name;
    String label = resolveInfo.activityInfo.applicationInfo.name;
    int flags = resolveInfo.activityInfo.flags;
    Log.i(TAG, "updatePackages: " + name + " " + activityName + " " + flags + " " + label);
}
//启动方式如下 
ActivityInfo ai = shortcuts.get(7).activityInfo;
String pkgName = ai.applicationInfo.packageName;
String activityName = ai.name; int flag = ai.flags;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName(pkgName, activityName);
intent.addFlags(flag); startActivity(intent);
//获取对应icon方法如下 
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName(pkgName, activityName);
intent.addFlags(flag);
try {
    Drawable dw = pm.getActivityIcon(intent);
} catch (PackageManager.NameNotFoundException e)
{
    e.printStackTrace();
}
  • 6
    帖子
  • 528
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待