本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!
Auto.js 调用系统短信、电话
操作环境
- VS Code
- Google nexus5x
- Auto.js Pro 7.0.4
- win10调用系统短信模块
- 发送短信 ```python importClass(android.content.Intent); importClass(android.telephony.SmsManager);
StringBuilder = java.lang.StringBuilder;代码语言:txt复制Uri = android.net.Uri;代码语言:txt复制ArrayList = java.util.ArrayList;代码语言:txt复制List = java.util.List;代码语言:txt复制Context = android.content.Context;代码语言:txt复制SimpleDateFormat=java.text.SimpleDateFormat;代码语言:txt复制Date=java.util.Date;代码语言:txt复制Long=java.lang.Long;代码语言:txt复制var MessageInfo;代码语言:txt复制var list;代码语言:txt复制console.show();代码语言:txt复制var smsManager = android.telephony.SmsManager.getDefault();代码语言:txt复制smsManager.sendTextMessage("13888888888", null, "123123", null, null);代码语言:txt复制toast('短信发送成功')代码语言:txt复制console.info('短信发送成功')代码语言:txt复制```代码语言:txt复制- 读取短信
```bash代码语言:txt复制importClass(android.net.Uri);代码语言:txt复制importClass(android.database.Cursor);代码语言:txt复制importClass(android.content.ContentResolver);代码语言:txt复制var SMS_INBOX = Uri.parse( "content://sms/" );代码语言:txt复制var cr = context.getApplicationContext().getContentResolver();代码语言:txt复制var projection=new Array("_id" , "address" , "person" , "body" , "date" , "type" );代码语言:txt复制var cur = cr.query(SMS_INBOX, projection, null , null , "date desc" );代码语言:txt复制var i=0;代码语言:txt复制while (cur.moveToNext()) {代码语言:txt复制 i=i 1;代码语言:txt复制 var number = cur.getString(cur.getColumnIndex("address"));//手机号 代码语言:txt复制 var name = cur.getString(cur.getColumnIndex("person"));//联系人姓名列表 代码语言:txt复制 var body = cur.getString(cur.getColumnIndex("body"));//短信内容代码语言:txt复制 toastLog(number);代码语言:txt复制 toastLog(name);代码语言:txt复制 toastLog(body);代码语言:txt复制 if(i>10){break;}代码语言:txt复制}代码语言:txt复制```- 监听短信
```bash代码语言:txt复制importPackage(android.content);代码语言:txt复制importClass(android.telephony.SmsMessage);代码语言:txt复制var filter=new IntentFilter();代码语言:txt复制filter.addAction("android.provider.Telephony.SMS_RECEIVED");代码语言:txt复制var receiver = new JavaAdapter(android.content.BroadcastReceiver, {代码语言:txt复制 onReceive : function(context, intent) {代码语言:txt复制 var sender = null;代码语言:txt复制 var bundle = intent.getExtras();代码语言:txt复制 var format = intent.getStringExtra("format");代码语言:txt复制 if (bundle != null) {代码语言:txt复制 var pdus = bundle.get("pdus");代码语言:txt复制 for (object in pdus) {代码语言:txt复制 var message=SmsMessage.createFromPdu(pdus[object],format);代码语言:txt复制 sender = message.getOriginatingAddress();代码语言:txt复制 messageBody = (message.getMessageBody());代码语言:txt复制 log("发信人: " replacepos(sender, 6, 9, "****"));代码语言:txt复制 log("短信内容: " messageBody);代码语言:txt复制 }代码语言:txt复制 }代码语言:txt复制 }代码语言:txt复制});代码语言:txt复制context.registerReceiver(receiver,filter);代码语言:txt复制setInterval(()=>{},1000);代码语言:txt复制events.on("eixt", function () {代码语言:txt复制 context.unregisterReceiver(receiver);代码语言:txt复制})代码语言:txt复制function replacepos(text,start,stop,replacetext) {代码语言:txt复制 mystr = text.substring(0,start) replacetext text.substring(stop 1);代码语言:txt复制 return mystr;代码语言:txt复制}代码语言:txt复制```调用系统电话模块
- 调用intent拨打电话 ```bash 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){代码语言:txt复制 let phoneAccountHandleList = telecomManager.getCallCapablePhoneAccounts();代码语言:txt复制 let intent = new Intent();代码语言:txt复制 intent.setAction(Intent.ACTION_CALL);代码语言:txt复制 intent.setData(Uri.parse("tel:" telNum));代码语言:txt复制 intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandleList.get(id));代码语言:txt复制 app.startActivity(intent);代码语言:txt复制 }代码语言:txt复制}代码语言:txt复制call(context,0,12345678910)代码语言:txt复制```PS:需要先开权限,没有权限会报错Permission denied
开启权限:设置->应用和通知->Auto.js Pro->权限


