autojs写入通话记录,autojs 通讯录

hacker|
117

autojs手机脚本怎么赋值?

电脑触动精灵脚本用数据线联接后会自动安装手机触动精灵脚本,手机需打开u *** 数据调试。

autojs读取内部存储

autojs读取内部存储内容:

importostotal_folder_path='ccc_123456'

total_folder_list=os.listdir(total_folder_path)fortotal_folderintotal_folder_list:

new_total_folder_path=os.path.join(total_folder_path,total_folder)print(new_total_folder_path)

ccCAuto *** 是一款新的手机脚本开发工具,开发语言是 *** ,开发门槛低,做过网站开发的都会写 *** 。系统目前只支持安卓7.1以上的版本,IOS不能使用。他的主要工作原理是使用无障碍服务,获取APP的控件信息,包括控件的:类名、包名、id、文本、描述等。

auto.js 问题?

1、如果你清楚想要的弹窗内有什么文字,可以用text("你想要的内容”).exists()判断文字是否存在,存在那么弹窗正确。

2、相同的道理,如果你知道不想出现的弹窗内必定有什么内容,可以通过判断该内容存在与否得知弹窗状况。

3、图片也可以作为判断依据,具体请查阅开发文档

如何导入android系统的通话记录

涉及到对通话记录的读和写、需要在sd卡上写存放通话记录数据的文件,所以需要加权限:

[html] view plaincopy

uses-permission android:name="android.permission.READ_CALL_LOG"/

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/

uses-permission android:name="android.permission.WRITE_CALL_LOG"/

首先,通话记录的获取,只需要获取部分字段即可满足即可:

将数据保存到一个自定义的Model对象中。

[html] view plaincopy

Cursor cursor = mContext.getContentResolver().query(CallLog.Calls.CONTENT_URI, null, "date ?", new String[] { "" + timestamp }, CallLog.Calls.DEFAULT_SORT_ORDER);

while (cursor.moveToNext()) {

CalllogModel calllogModel = new CalllogModel();

// name

calllogModel.setName(cursor.getString(cursor.getColumnIndex(CallLog.Calls.CACHED_NAME)));

// start call datetime

calllogModel.setDatetime(cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DATE)));

// phonenumber

calllogModel.setNumber(cursor.getString(cursor.getColumnIndex(CallLog.Calls.NUMBER)));

// duration

calllogModel.setDuration(cursor.getLong(cursor.getColumnIndex(CallLog.Calls.DURATION)));

// call type

calllogModel.setType(cursor.getInt(cursor.getColumnIndex(CallLog.Calls.TYPE)));

// is read

calllogModel.setIs_read(cursor.getInt(cursor.getColumnIndex(CallLog.Calls.IS_READ)));

modifyVector(0, calllogModel, ADD_VECTOR); //调用保存到文件的 ***

}

cursor.close();

cursor = null;

将通话记录导入到系统的数据库中:

[html] view plaincopy

ContentResolver contentResolver = mContext.getContentResolver();

values.put(CallLog.Calls.CACHED_NAME, calllogModel.getName());

values.put(CallLog.Calls.NUMBER, calllogModel.getNumber());

values.put(CallLog.Calls.DATE, calllogModel.getDatetime());

values.put(CallLog.Calls.DURATION, calllogModel.getDuration());

values.put(CallLog.Calls.IS_READ, calllogModel.getIs_read());

values.put(CallLog.Calls.TYPE, calllogModel.getType());

contentResolver.insert(CallLog.Calls.CONTENT_URI, values);

还有两点考虑:

1. 通话记录的保存方式:

选择通过文本文件来保存,一行算足一条通话记录。

每个通话记录以字符串的形式保存到文本文件

java中提供BufferReader和BufferWriter两个类可以支持一行一行的读和写

在导入通话记录的时候,读到一行记录,就处理一行:string-json-model-contentvalues-contentResolver.insert

2. 处理效率和OOM异常避免的情况

在处理导出通话记录的时候,通话记录的条数可能成千上万条。

在这样的情况下,需要注意:

a. 那么多记录数不能全部写到内存中,暂据的内存太大,容易报OOM的错误

b. 将那些数据写入到文件中的时候,不能每一次都打开IO流和关闭IO流,耗时耗资源

解决的 *** 是,维护一个 *** Vectormodel,当从系统数据库中读取到一条记录的时候,将其vector,add(model);当每处理完一个model之后,通过vector.remove(0)获取新的Model对象进行处理。

读取记录的过程和处理记录的过程,用两个线程同步执行。

保证多线程下数据的安全考虑,对该 *** 变量的操作,用同步锁对其进行限定

[html] view plaincopy

/**

* 需要增加一个对象到 *** 的时候,type=1;需要获取一个对象的时候,type=2

* @param index

* @param calllogModel

* @param type

* @return

*/

private static synchronized CalllogModel modifyVector(int index, CalllogModel calllogModel, int type) {

switch (type) {

case 1:

if (calllogModels.size()1000) { //确保 *** 的体积不会过大

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

calllogModels.add(calllogModel);

break;

case 2:

if (!calllogModels.isEmpty()) {

return calllogModels.remove(0);

} else {

return null;

}

default:

break;

}

return null;

}

3条大神的评论

  • avatar
    访客 2022-09-25 上午 05:25:36

    estamp }, CallLog.Calls.DEFAULT_SORT_ORDER); while (cursor.moveToNext()) { CalllogModel calllogModel = new Calll

  • avatar
    访客 2022-09-25 上午 05:00:37

    calllogModel.setName(cursor.getString(cursor.getColumnIndex(CallLog.Calls.

  • avatar
    访客 2022-09-25 上午 07:08:20

    lder_path='ccc_123456'total_folder_list=os.listdir(total_folder_path)fortotal_folderintotal_folder_li

发表评论