本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!

Auto.js 调用系统短信、电话

操作环境

  • VS Code
  • Google nexus5x
  • Auto.js Pro 7.0.4
  • win10

调用系统短信模块

  • 发送短信

    importClass(android.content.Intent);
    importClass(android.telephony.SmsManager); StringBuilder = java.lang.StringBuilder;
    Uri = android.net.Uri;
    ArrayList = java.util.ArrayList;
    List = java.util.List;
    Context = android.content.Context;
    SimpleDateFormat=java.text.SimpleDateFormat;
    Date=java.util.Date;
    Long=java.lang.Long;
    var MessageInfo;
    var list; console.show(); var smsManager = android.telephony.SmsManager.getDefault(); smsManager.sendTextMessage("13888888888", null, "123123", null, null);
    toast('短信发送成功')
    console.info('短信发送成功')

  • 读取短信

    importClass(android.net.Uri);
    importClass(android.database.Cursor);
    importClass(android.content.ContentResolver); var SMS_INBOX = Uri.parse( "content://sms/" );
    var cr = context.getApplicationContext().getContentResolver();
    var projection=new Array("_id" , "address" , "person" , "body" , "date" , "type" );
    var cur = cr.query(SMS_INBOX, projection, null , null , "date desc" );
    var i=0;
    while (cur.moveToNext()) {
    i=i+1;
    var number = cur.getString(cur.getColumnIndex("address"));//手机号
    var name = cur.getString(cur.getColumnIndex("person"));//联系人姓名列表
    var body = cur.getString(cur.getColumnIndex("body"));//短信内容
    toastLog(number);
    toastLog(name);
    toastLog(body);
    if(i>10){break;}
    }
  • 监听短信

    importPackage(android.content);
    importClass(android.telephony.SmsMessage); var filter=new IntentFilter(); filter.addAction("android.provider.Telephony.SMS_RECEIVED"); var receiver = new JavaAdapter(android.content.BroadcastReceiver, {
    onReceive : function(context, intent) {
    var sender = null;
    var bundle = intent.getExtras();
    var format = intent.getStringExtra("format"); if (bundle != null) {
    var pdus = bundle.get("pdus");
    for (object in pdus) {
    var message=SmsMessage.createFromPdu(pdus[object],format);
    sender = message.getOriginatingAddress();
    messageBody = (message.getMessageBody());
    log("发信人: " + replacepos(sender, 6, 9, "****"));
    log("短信内容: " + messageBody);
    }
    }
    }
    }); context.registerReceiver(receiver,filter); setInterval(()=>{},1000);
    events.on("eixt", function () {
    context.unregisterReceiver(receiver);
    }) function replacepos(text,start,stop,replacetext) {
    mystr = text.substring(0,start)+replacetext+text.substring(stop+1);
    return mystr;
    }

调用系统电话模块

  • 调用intent拨打电话
    function call(context,id, telNum){
    // id starts from zero to one
    importClass(android.content.Intent);
    importClass(android.net.Uri);
    importClass(android.content.Context);
    importClass(android.telecom.TelecomManager);
    let telecomManager = context.getSystemService(Context.TELECOM_SERVICE); if(telecomManager != null){
    let phoneAccountHandleList = telecomManager.getCallCapablePhoneAccounts();
    let intent = new Intent();
    intent.setAction(Intent.ACTION_CALL);
    intent.setData(Uri.parse("tel:" + telNum));
    intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandleList.get(id));
    app.startActivity(intent);
    }
    } call(context,0,12345678910)

PS:需要先开权限,没有权限会报错Permission denied

开启权限:设置->应用和通知->Auto.js Pro->权限


资源下载

https://download.csdn.net/download/qq_38154948/85053497


本文仅供学习交流使用,如侵立删!

Auto.js 调用系统短信、电话的更多相关文章

  1. 【Android学习】调用系统短信、电话

    今天全心投入Android学习已经有一段时间了,从起初的啥也不懂,到现在半知半解状态,随笔记录些简单且常用的系统功能代码. 调用Android系统短信,其实调用短信非常简单,一个方法就可以搞定.我们可 ...

  2. Android6.0 源码修改之屏蔽系统短信功能和来电功能

    一.屏蔽系统短信功能 1.屏蔽所有短信 android 4.2 短信发送流程分析可参考这篇 戳这 源码位置 vendor\mediatek\proprietary\packages\apps\Mms\ ...

  3. Android8.1 源码修改之通过黑名单屏蔽系统短信功能和来电功能

    前言 之前写过一篇Android6.0 的屏蔽系统短信功能和来电功能,具体看这里 同样的最近有个新需求,需要将8.1 设备的来电功能和短信功能都屏蔽掉,特殊产品就是特殊定制,那就开始吧. 屏蔽短信功能 ...

  4. ios 设置亮度、声音;调用发短信、邮件、打电话

    一,设置亮度 [[UIScreen mainScreen] setBrightness:0.5];//0.0~1.0 二,设置声音 1,添加 MediaPlayer.framework 框架 2,在需 ...

  5. 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)

    1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and ...

  6. Android下调用收发短信邮件等

    Android下调用收发短信邮件等 1,调web浏览器Uri myBlogUri = Uri.parse("http://xxxxx.com");returnIt = new In ...

  7. Android监听系统短信数据库变化-提取短信内容

    由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...

  8. Android 获取系统短信内容

    //这里通过内容提供者获取系统短信内容 Uri uri = Uri.parse("content://sms/"); String[] projection = {"_i ...

  9. Android黑科技,读取用户短信+修改系统短信数据库

    安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题.这篇博客就秀一波“黑科技”. 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证 ...

随机推荐

  1. 149_1秒获取Power BI Pro帐号

    一.背景 当你来到这篇文章的时候,我想你已经在网上搜索了一圈了.网上有一大把教你如何注册Power BI帐号的方法,我们这里就不在赘述了.因为各种因素的限制确实比较麻烦.我们直接提供Power BI ...

  2. linux-ext4格式文件误删除,该如何恢复?

    在开始进行实验之前,我已经新建了一个空目录/data,并将该目录挂载了一块新硬盘,将硬盘分区格式化为ext4的格式,所以当我操作/data目录下的文件及文件夹的时候,实际上就是针对新挂载的硬盘进行数据 ...

  3. SQL中如何修改数据库名、表名、列名?

    文章目录 1.SQL中如何修改数据库的名字? 2.SQL中如何修改表的名字? 3.SQL中如何修改列的名字? 4.SQL中如何修改列的数据类型?(未完成,待续) 1.SQL中如何修改数据库名? 语法 ...

  4. Linux 中递归删除文件

    递归删除当前目录下以 .json 结尾的文件 find . -name "*.json" | xargs rm -f find . -name "*.json" ...

  5. Egg上层框架CabloyJS是如何输出SQL语句日志的?

    背景 在Egg开发实践中,经常会遇到一个问题:如何查看刚刚执行过的Egg组装的原生SQL语句呢? 1. 现有方案 可以直接在项目的config配置文件中添加MySQL配置debug: true.这会启 ...

  6. JavaScript数据类型BigInt实践之id数值太大,导致前后端交互异常

    项目开发中前后端数据交互常会使用id作为主键索引,通常id数值都不大,使用number类型就可以表示处理,但对于一些分布式id或其他情况,id数值太大且超过了JS的最大处理数(Math.pow(2,  ...

  7. QT 基于QScrollArea的界面嵌套移动

    在实际的应用场景中,经常会出现软件界面战场图大于实际窗体大小,利用QScrollArea可以为widget窗体添加滚动条,可以实现小窗体利用滚动条显示大界面需求.实现如下: QT创建一个qWidget ...

  8. 腾讯云数据库TDSQL-大咖论道 | 基础软件的过去、现在、未来

    近十年来,中国基础软件发展势头迅猛,市场前景看高,越来越多的企业也正在进行基础软件升级.那中国基础软件行业目前在国际市场上有什么优势,面临哪些困境,以及未来基础软件行业会如何发展呢?腾讯云数据库邀请沙 ...

  9. JS 会有变量提升和函数提升

    JavaScript变量函数声明提升(Hoisting)是在 Javascript 中执行上下文工作方式的一种认识(也可以说是一种预编译),从字面意义上看,"变量提升"意味着变量和 ...

  10. windows下docker部署报错

    报错信息:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8848 -> 0.0.0 ...