本经验介绍了如何在使用auto.js时如何向Tasker发送intent(意图)实现信息的传递。
工具/原料
安卓手机
软件auto.js
软件Tasker
auto.js部分
1、auto.js中的app.sendBroadcast()函数用于发送intent中的广播。由于Tasker只支持接收广播类型的intent,所以我们使用该函数来实现信息的传递。
2、app.sendBroadcast(options)options {Object} 选项根据选项构造一个Intent,并发送该广碛枢粢晴播Object可以包含许多信息,详情可以参考auto.js的帮助文档。在此,我们只介绍我们将会用到的action和extras。action {string} 意图的Action,指意图要完成的动作,是一个字符串常量,比如"android.intent.action.SEND"。当action以"android.intent.action"开头时,可以省略前缀,直接用"SEND"代替。在我们的设置中,我们会自己创建一个安卓中并没有的新action。因此,大家只要起一个不会与其他action重名(包括auto.js和Tasker中其他的脚本和配置文件使用过的)action名称即可。我一般以“net.dinglisch.android.taskerm”(Tasker的包名)为前缀,后面加上可以区分不同后缀。extras {Object} 以键值对构成的这个Intent的Extras(额外信息)。提供该意图的其他信息,例如发送邮件时的邮件标题、邮件正文。我们可以用extras传递一个或者多个值。这个值可以是数字也可以是一个字符串。如果你不需要传递具体信息,也可以省略。
3、实例:app.sendBroadcast({action: &拭貉强跳#39;net.dinglisch.android.taskerm.new',extras: { time: realNextTime }})在这个实例中,realNextTime是一个在auto.js中赋过值的变量,你也可以直接换成一个数字或者字符串。time是在Tasker中被赋值的变量,你可以在Tasker中直接调用该变量。
Tasker部分
1、首先添加配置文件事件-系统-收到的意图界面中第一栏操作填写前面auto.js中命名的action,即实例中的“net.dinglisch.android.taskerm.new”
2、任务中你可以添加自己需要执行的任务。在这里,我们以闪光灯为例展示如何调用从auto.js中传递过来的具体信息。如图所示,我们可以直接调用该变量。此处注意区分全局变量和临时变量。实例中的time首字母为小写,因此变量属于临时变量,在任务执行完毕后不会保存。