Android使用Trigger+Tasker设定NFC标签

现在用的华硕 New PadFone Infinity A86 手机一直都是支持 NFC 功能的,只是之前一直没怎么用过,基本只有在查询公交卡余额的时候才用一下(这里顺便安利一下南京市政府组织开发的 “我的南京” App,可以通过手机 NFC 查询公交卡余额),最近将手机 ROM 升级到 Android 5.0 之后终于觉得 5.0 自带的 Smart Lock 功能会比较适合我了,可以使用蓝牙、NFC 标签等实现手机智能解锁功能。

升级 Android 5.0 另外一个方便的地方就是我的 Chromebook 也支持 Smart Lock 功能,两边都开启之后如果 Android 5.0 以上的手机在 Chromebook 旁边并且已经解锁,那 Chromebook 也可以自动解锁无需再输入密码登录。

经过一些研究之后,还是买了一些 NFC 标签,准备用之前就捣鼓过的 Tasker App(收费 2.99 美元)实现 NFC 标签的各种触发操作,不过这还需要配合使用 Trigger App(基本功能免费,增强功能通过应用内购买),因为 Tasker 没有直接支持 NFC 触发条件,Trigger 倒是有在检测到 NFC 标签之后执行 Tasker 任务的功能,需要特别注意的是 Trigger 必须在安装好 Tasker 之后安装。

Trigger 的 NFC 标签功能具体如何操作也比较简单这里就不介绍了,只需要在执行的动作里勾选 “Tasker” - “Tasker任务” 并选择实际需要执行的 Tasker 任务即可,这里我以两个实际例子说明 Tasker 如何实现稍微复杂一些的任务。

1、一个 NFC 标签实现自动开启停止睡眠追踪:

需求:

平时我会使用 Sleep as Android 软件(免费试用 14 天)监控睡眠状况,其功能非常完善而且实际使用起来也很方便(虽然可能不会非常准确 ~~ 哈哈),只是这个 App 是一直在前台运行的比较耗电,而且每天晚上睡觉之前就需要手工开启,早上醒来之后再手工停止,因此就想到在床头贴上一个 NFC 标签实现睡觉之前刷一下自动启动睡眠追踪并开启飞行模式以省电,早上起来之后再刷一下这个 NFC 标签可以停止睡眠追踪并自动关闭飞行模式。

问题:

幸好 Sleep as Android 是自带 Tasker 插件,可以在添加任务时选择插件,并指定 “睡眠追踪”,之后就能配置具体执行哪种操作(启动或者停止睡眠追踪之类的);

另外飞行模式的切换在新的 Android 系统中已经不能直接修改了,这时需要祭出大杀器 Secure Settings App 了,安装之后也会自动增加一个 Secure Settings Tasker 插件,不过后面的操作要求手机必须 root,root 之后启用 Secure Settings 的 System+ Module,这样将 GPS、飞行模式之类的控制功能安装到系统分区就能控制飞行模式之类的切换了。

Tasker 任务配置:

  • 睡眠追踪 Tasker 插件 - 开始 睡眠追踪,并设置条件:%AIR = off
  • Secure Settings Tasker 插件 - Airplane Mode Enabled,并设置条件:%AIR = off
  • 睡眠追踪 Tasker 插件 - 停止 睡眠追踪,并设置条件:%AIR = on
  • Secure Settings Tasker 插件 - Airplane Mode Disabled,并设置条件:%AIR = on
  • 等待 - 3 秒;
  • Secure Settings Tasker 插件 - NFC Enabled,并设置条件:%AIR = on

上面的 5 个步骤顺序不能搞错,而且对应的条件也很重要。

机制解释:

第 1 个任务先判断如果当前手机飞行模式(Tasker 中以 %AIR 变量表示)是关闭的,则认为要开始睡眠追踪,接着第 2 个任务在同样的条件下就通过 Secure Settings 启用飞行模式,第 3 个任务则是发现如果飞行模式已启用则认为已经是在睡眠追踪状态,这时就需要停止追踪,第 4 个任务类似跟着就是关闭飞行模式;

第 5 个和第 6 个任务稍微特殊一点,因为我们在启用飞行模式之后 NFC 功能也同样会被禁用的,这样就没法在早上醒来时刷 NFC 标签了,这样就需要在前面几步都做好之后先等待几秒钟,然后判断如果飞行模式已开启则通过 Secure Settings 自动再将 NFC 功能也开启,而且这两个任务不能直接在第 2 个任务(开启飞行模式)之后就执行,因为开启飞行模式之后 %AIR 得到的飞行模式状态不是马上就能更新过来。

2、一个 NFC 标签实现自动开启关闭百度地图:

需求:

这个需求就比较常见了,在我的 SUV 汽车仪表盘附近贴一个百度地图导航专用 NFC 标签,实现刷一下自动开启 GPS 并启动百度地图导航,等导航结束了再刷一下就自动退出百度地图并关闭 GPS。

问题:

开启关闭 GPS 的问题和飞行模式类似,还是通过 Secure Settings 插件来实现,Tasker 直接支持启动其它 App 的操作,也支持杀死其它 App。

Tasker 任务配置:

  • Secure Settings Tasker 插件 - GPS Enabled,并设置条件:%GPS = off
  • 启动应用 - 百度地图,并设置条件:%GPS = off
  • 按钮 - 后退(此任务重复添加 5 次或以上),并设置同样的条件:%GPS = on
  • 杀死应用 - 百度地图,并设置条件:%GPS = on
  • Secure Settings Tasker 插件 - GPS Disabled,并设置条件:%GPS = on

机制解释:

具体机制还是和上面比较类似的,使用 Tasker 内置的 %GPS 变量根据当前 GPS 状态执行对应的任务操作,值得一提的是第 3 个任务这里为了优雅一点我先用发送多次返回按键的方式模拟退出百度地图的操作,当然对于百度全家桶系的手机 App 我是很乐意直接杀死禁止后台服务和唤醒之类的,因此倒数第二步我还是加上了杀掉百度地图的任务 ^_^,最后再关闭 GPS。

有一点需要说明的是由于 Tasker 没有直接判断某个 App 是否在前台运行的方法(虽然可以另外安装 Tasker Process Running 这类插件判断某个 App 是否在运行,但其不好区分前台后台,百度地图这种在后台运行的情况不好处理),因此这两个例子里我都是直接用 Tasker 自带的飞行模式或 GPS 当前状态判断要执行什么操作的。

总之使用 Tasker 配合 NFC 标签并安装需要的插件还是能实现各种特殊的功能滴,本文中使用的所有 App 的链接都是 Google Play 官方地址,国内用户可以自行访问国内各种手机市场下载安装,祝玩的开心~~~





*