autojs选择来电联系人

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


选择来电联系人的三种方式

  • 通讯录选择
  • 通讯录随机
  • 自己填写名字和电话

通讯录选择

第一步:判断通讯录读取权限, 有则继续,无则申请

verifyStoragePermissions();
/* -------------------------------------------------------------------------- */
function verifyStoragePermissions() {
    let READ_CONTACTS_requestCode = 1;
    let PERMISSIONS_STORAGE = ["android.permission.READ_CONTACTS"];
    try {
        //检测是否有权限
        let permission = Packages.androidx.core.app.ActivityCompat.checkSelfPermission(
            activity,
            "android.permission.READ_CONTACTS"
        );
        if (permission != android.content.pm.PackageManager.PERMISSION_GRANTED) {
            // 没有权限,去申请权限,会弹出对话框
            Packages.androidx.core.app.ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                READ_CONTACTS_requestCode
            );
        } else {
            log("有读写通讯录权限");
        }
    } catch (e) {
        log(e);
    }
}

第二步:打开联系人列表

let intent = new Intent();
intent.setAction("android.intent.action.PICK");
intent.addCategory("android.intent.category.DEFAULT");
intent.setType("vnd.android.cursor.dir/phone_v2");
activity.startActivityForResult(intent, 1);

第三步:写监听, 接收联系人选择结果

这要求我们先写监听, 再打开联系人界面;

const READ_CONTACTS_CODE = 123;
ui.emitter.on("activity_result", (requestCode, resultCode, data) => {
    if (requestCode == READ_CONTACTS_CODE) {
        if (resultCode == android.app.Activity.RESULT_OK) {
            let uri = data.getData();
            let phoneNum = null;
            let contactName = null;
            // 创建内容解析者
            let contentResolver = context.getContentResolver();
            let cursor = null;
            if (uri != null) {
                cursor = contentResolver.query(uri, ["display_name", "data1"], null, null, null);
            }
            while (cursor.moveToNext()) {
                contactName = cursor.getString(
                    cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)
                );
                phoneNum = cursor.getString(
                    cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)
                );
            }
            cursor.close();
            //  把电话号码中的  -  符号 替换成空格
            if (phoneNum != null) {
                phoneNum = phoneNum.replace(/\-/g, " ");
                phoneNum = phoneNum.replace(/ /g, "");
            }
            log("联系人: " + contactName + ", " + phoneNum);
        }
    }
});


环境
设备:小米11pro

Android版本: 12

Autojs版本: 9.1.22


名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问 --- 牙叔教程


声明
部分内容来自网络 本教程仅用于学习, 禁止用于其他用途

相关文章
|
5月前
|
Android开发
Android通讯录开发之通讯录联系人搜索功能最新实现
Android通讯录开发之通讯录联系人搜索功能最新实现
|
移动开发
手机h5页面唤起打电话、发短信功能
手机h5页面唤起打电话、发短信功能
|
存储 Android开发 iOS开发
指导:大量联系人电话号码怎么导入iphone苹果手机通讯录?
想有没有简单的办法能帮我来快速批量操作完成,在网上查了很多方法都很复杂,搞了半天精疲力尽,在我快要放弃的时候遇到了一个网上常见简便的软件工具,金芝号码提取导入助手。它很轻松就解决了我的问题:大量联系人电话号码怎么导入iphone苹果手机通讯录?当然了安卓手机也是可以导入的,通用。我写了一个详细的图文教程。
2427 0
指导:大量联系人电话号码怎么导入iphone苹果手机通讯录?
|
API
autojs发微信通知
牙叔教程 简单易学 使用场景 给微信发送通知
606 0
|
Android开发 iOS开发 Windows
方法:安卓手机如何批量添加联系人到通讯录
第I步:你得有安卓手机,再者,你到电脑上打开软件,金芝号码提取导入助手。第II步:这两个准备工作做好了以后,你打开你的Excel表格,把表格里面的铭字和号码各自复制好,分别放进软件里面的第三个功能“导入通讯录”,然后在这个功能下方点“通讯录生成”,你就可以获得一个文件,你把文件保存到电脑桌面。第III步:再通过你电脑上的溦xin或者Q,发去给你的手机溦xin或者手机Q,在手机上点开这个文件,就可以安卓手机批量添加联系人到通讯录了。
方法:安卓手机如何批量添加联系人到通讯录
|
Android开发
autojs播放来电铃声
牙叔教程 简单易懂
1092 0
|
运维 Android开发
autojs推送消息到微信
息知 一个极简的微信消息通知接口,只需一行代码就能立即将消息推送到你的微信,是运维、消息通知的好帮手 发送消息支持get, post两种方式
918 0
|
Android开发
Android笔记: 获取手机联系人列表
Android笔记: 获取手机联系人列表
133 0
Android笔记: 获取手机联系人列表
|
iOS开发
iOS获取通讯录联系人信息(二)
iOS获取通讯录联系人信息
135 0
|
iOS开发
iOS获取通讯录联系人信息(一)
iOS获取通讯录联系人信息
434 0