变量
常规
变量是一种会随着时间发生改变的已命名的值,例如电池的电量级别,或一天内的具体时间。
当Tasker在文字中遇到变量名后,即可将该名称替换为相关变量当前的值,然后才执行对应的操作。
变量的主要用途是:
- 动态绑定:使用在创建任务时尚且未知的数据通过操作达到某种目的,例如回复短信,但只有在收到短信后才能知道发送方的号码。
- 在任务内部和任务之间实现流控制。
- 记录数据供后续使用,例如在任务之间传递数据。
变量的生命周期
在安装Tasker后,就算重启动了设备,变量值也会持续存在。
内建变量
内建变量的值将由Tasker自己更新。
- 飞行模式状态
(动态)
%AIR
代表飞行模式的当前状态为开启或关闭。
- 电池级别
%BATT
从0-100代表设备的当前电量级别。
- 蓝牙状态
(动态)
%BLUE
代表蓝牙的状态为开启或关闭。
- 来电姓名/号码/日期/时间
(动态,被监控)
%CNAME / %CNUM / %CDATE / %CTIME
代表上一次接到的电话的呼叫者姓名、号码、日期,以及时间。
来电号码如果未知,将显示为0。
来电者姓名如果未知(也许因为对方号码被阻止),则将显示为?,并且如果找不到对应的联系人信息,来电者姓名也将显示为电话号码。但在2.0以前版本的Android上不可用。
- 去电姓名/号码/日期/时间/时长
(动态,被监控)
%CONAME / %CONUM / %CODATE / %COTIME / %CODUR
代表上一次拨打电话的姓名、号码、日期,以及时间。
如果没有找到对应的联系人信息,则对方姓名将显示为电话号码。但在2.0以前版本的Android上不可用。
- 基站ID
(动态,被监控)
%CELLID
代表当前已知的基站ID。
如果您使用了靠近基站状态则要注意,有时候就算%CELLID报告的基站ID未知或不可用,靠近基站状态也会被激活,这是因为靠近基站这一状态只能响应有效ID,这是为了预防例如服务中断等情况下状态变为不激活状态。
- 基站信号强度
(动态,被监控)
%CELLSIG
从0-8代表当前电话信号的强度级别,强度以粗略的方式线性递增。在某些CDMA电话上,信号强度的递增步进为2(0、2、4、6、8),如果信号强度未知或无服务,强度则会表示为-1。
某些Android版本中存在的Bug会导致除非屏幕关闭并重新打开,否则所报告的信号强度级别无法更新。
- 基站服务状态
(动态,被监控)
%CELLSRV
代表当前的电话服务状态,可能为未知、有服务、无服务、仅限紧急通话、电量用尽。
- 剪贴板内容
%CLIP
代表系统剪贴板中包含的内容。
- CPU频率
%CPUFREQ
CPU目前运行的频率。请参考:CPU控制
- CPU调节器
%CPUGOV
目前控制CPU频率的调节器。请参考:CPU控制。
- 日期
%DATE
代表当前的,人工可读的实际日期。
- 月份中的天数
%DAYM
代表当前月内的第几天,从1开始。
- 周中的天数
%DAYW
代表当前周内的第几天,从周日开始。
- 显示亮度
%BRIGHT
从0-255代表当前屏幕亮度。在某些设备上,如果启用了Android中的自动亮度设置,则该值将总是为255。
- 显示超时
%DTOUT
当前的系统屏幕超时时间(秒)。
- 电子邮件 发件人/Cc/主题/日期/时间
(动态)
%EFROM / %ECC / %ESUBJ / %EDATE / %ETIME
由K9电子邮件客户端程序收到的最新一封电子邮件的发件人、抄送人、主题、接收日期,以及接收时间。
- 可用内存
%MEMF
以MB为单位统计的系统可用内存数。
- GPS状态
%GPS
显示系统GPS接收器的状态为开启或关闭。
- HTTP响应代码/数据/字长
(动态)
%HTTPR / %HTTPD / %HTTPL
来自上一次HTTP POST/GET操作的结果。
- 键盘锁状态
%KEYG
代表键盘锁的状态为开启或关闭
- 上一个应用程序
%LAPP
在运行当前程序之前,上一个前台运行的应用程序的名称,例如Maps。
- 上一张照片
%FOTO
由Tasker或标准的系统相机程序所拍摄的上一张照片的文件系统路径。
- 亮度级别
(动态,被监控)
%LIGHT
以勒克斯为单位统计的上一次记录的亮度级别。
- 位置
(动态)
%LOC
上一次GPS定位获得的经纬度。
参考注释。
- 位置精度
(动态)
%LOCACC
以米为单位统计的上一次GPS定位结果的精确度。
参考注释。
- 位置海拔
(动态)
%LOCALT
以米为单位统计的上一次GPS定位结果的海拔,如果海拔信息不可用则显示为0。
参考注释。
- 位置速度
(动态)
%LOCSPD
以米/秒为单位统计的上一次GPS定位时的速度,如果速度信息不可用则显示为0。
参考注释。
- 定位时间秒数
(动态)
%LOCTMS
以秒为单位统计上一次GPS定位所需的时间。要获得上次定位时间的寿命,则需从%TIMES中将该变量的值减掉。
除非通过上次定位(首次GPS定位后的后续定位)时间计算出GPS时间的偏移量,否则该值将不可用,因为在这之后,该值才有意义。
参考注释。
- 位置(网络)
(动态)
%LOCN
上一次网络定位获得的经纬度。
参考注释。
- 位置精度(网络)
(动态)
%LOCNACC
以米为单位统计的上一次网络定位的精度。
参考注释。
- 定位时间(网络)
(动态)
%LOCNTMS
以秒为单位统计的上一次网络定位所需的时间。要获得上一次定位信息的寿命,则需从%TIMES中奖该变量的值减掉。
参考注释。
- 音轨
(动态)
%MTRACK
当前播放的音轨(仅适用于Tasker的播放音乐和播放音乐目录操作)
- 已静音
%MUTED
代表麦克风当前已经静音(开)或尚未静音(关)。
- 通知标题(动态,被监控)
%NTITLE
状态栏中显示的上一个通知的标题,该变量要求Tasker的辅助访问服务必须运行(参考Android辅助访问设置)。但由Tasker生成的通知不会显示在这里。
Cupcake上无法使用。
- 电话号码
%PNUM
如果在服务区范围内,设备目前的电话号码。
在某些电话上可能无法使用(Android本身的限制),这可能取决于SIM卡的类型。
- 配置文件已激活
(动态)
%PACTIVE
逗号分隔的列表,用激活的顺序列出了当前已经激活的命名配置文件。相同名称的配置文件只显示一次。
- 配置文件已启用
(动态)
%PENABLED
逗号分隔的列表,用创建的顺序列出了当前已经启用的命名配置文件。相同名称的配置文件只显示一次。
- 漫游
%ROAM
如果电话漫游在当前电话网络中,则显示为开,否则显示为关。
- 屏幕
(动态)
%SCREEN
屏幕是否已打开(值为开)或已关闭(值为关)。
- 静音模式
(动态)
%SILENT
代表静音模式的当前状态:关、震动,或开。
- 扬声器
%SPHONE
代表扬声器的当前状态为开或关。
- 语音
(动态)
)
%SPEECH
在可用的前提下,代表当前的语音合成方式为朗读或朗读到文件操作。
- 任务队列秒数
(动态)
%QTIME
当前任务开始执行的时长秒数。请注意,任务可以被高优先级任务所打断,因此该数值并不一定是任务运行总时长的精确结果。
- 运行中的任务
(动态)
%TRUN
用逗号分隔的列表列出了当前运行中的所有任务的名称。
- 电话网络
(动态,已监控)
%TNET
设备目前所属的电话网络运营商的名称。
CDMA电话的该信息可能不够准确。
- 信息的 发件人/日期/主题/时间
(已监控)
%SMSRF / %SMSRN / %SMSRB / %SMSRD / %MMSRS / %SMSRT
代表上次收到的信息(短信和彩信)的发件人地址、姓名、正文、日期,以及时间。
只有在引用这些变量,并收到信息后,这些变量才有内容,这是因为Tasker只有在需要时才监控短信。
如果找不到匹配的联系人,则发送人姓名会显示为对方的地址。但在 2.0以前版本的Android上不可用。
只有上一次收到的是彩信时才有主题内容。
- 时间
%TIME
代表当前的,人工可读的实际时间。
- 时间秒数
%TIMES
当前的时间秒数。
(如果好奇想知道,这个秒数是从1970年1月的某个时间开始计时的)。
- 开机时间
%UPS
以秒为单位统计自从上次启动后的持续时间。
- 音量 - 警告/通话/DTMF/媒体/通知/铃声/系统
(动态)
%VOLA / %VOLC / %VOLD / %VOLM / %VOLN / %VOLR / %VOLS
音频通道的当前音量级别。
在某些设备上,可能无法动态获得音量的变动,某些设备则可能只有在打电话时无法获得。
- WiFi信息
%WIFII
在连接到访问点(AP)后,显示有关AP的人工可读信息。如果尚未连接,则显示最后一次Wifi扫描后获得的附近AP信息。
- WiFi状态
(动态)
%WIFI
代表WiFi是否被打开或 关闭。
注意:如果Wifi正在被启用或禁用,实际上除了已启用外的其他任何情况,此处都会显示为关闭。
- Wimax状态
%WIMAX
代表Wimax是否被打开或关闭。
注意:如果Wimax正在被启用或禁用,实际上除了已启用外的其他任何情况,此处都会显示为关闭。
- 窗口标签
(已监控)
%WIN
当前窗口的标签,通常这里的窗口指全屏活动或对话框。
如果标签未知,则不会设置该变量。
对于某些窗口,其标签可能是其中所包含第一个项目的名称,例如菜单项,甚至某个按钮。
常规说明
上述列表中标记为动态
的变量,无论其值是否变化,都可触发变量值状态的变动,以及变量设置事件。
上述列表中标记为已监控
的变量,如果用于条件,或用于小工具或已启用配置文件中,可导致相关监视器开始监控其状态。例如,显示操作中使用的%CELLS变量可用于追踪基站位置。
局限:已监控变量无法被匿名快捷方式检测到。
有关位置变量的注意事项
如果相关提供程序(网络或GPS)被激活,这些变量会回报相关提供程序的值,如果有其他程序也在申请位置信息,则可能导致其他程序获得比Tasker更新的值。
如果相关提供程序未被激活,这些变量则会汇报上一次被Tasker检测到的值,这些值可能来自位置条件
中对获得位置
操作监控而来的结果。
这意味着如果在两次使用该变量的过程之间关闭位置提供程序,所报告的定位时间可能会延后一些。
用户变量
变量设置这个操作还可用于创建新变量,此类变量的名称则有下列限制:
- 必须以%符号开头
- 是大小写敏感的
- 必须至少包含额外的三个字母,第一个字符还不能是数字
- 可以包含下划线字符(_),但头尾不能使用该字符
未初始化的变量
对于尚未赋值的用户变量,将不能再执行过程中获得代替用的值。例如,在I love %FRUIT这个表达式中,如果%FRUIT尚未初始化,那么该表达式将维持原样,否则%FRUIT可以使用值替代。
例外:数学表达式中使用的未初始化的变量会被替换为0。
变量操作
有多个操作可直接操纵变量值,这些操作都位于变量类别下。
另外,您可以从文本文件中读取行或段落,并将其读入变量,为此可使用文件类别下的读取行和读取段落操作。
插件中的变量
从1.0.10版Tasker开始,插件开发人员可以让Tasker替换自己插件字符串中所包含的变量,并使用当前的Tasker值。如果您有插件,但不支持该功能,请向插件开发人员提供下列URL:
http://tasker.dinglisch.net/plugins.html
这里提供了相关技术信息。