`

Android Tasker应用之自动查询并显示话费流量套餐信息

阅读更多

虽然Android平台有非常多的流量监控软件,但最准确的流量数据还是掌握在运营商手里。有些朋友可能像我一样时不时地发短信查询流量信息,这个操作在智能手机上显得太不智能了,本文将用Tasker让这个操作变得智能化。

 

1、功能需求:

  • 每天早上闹钟响时,Tasker自动发送短信给运营商查询套餐信息。收到短信后Tasker自动分析短信内容,并将话费余额,流量信息等显示在桌面上。
  • 用户可以手动随时给运营商发短信查询,Tasker自动判断为套餐查询信息后提取信息并显示。
  • 显示的内容包括更新时间、当前话费、话费余额、剩余流量、剩余语音时长(由运营商提供的信息确定)

最终需要实现的效果:

data plan

data plan

 

 

2、实现分析

整个操作由两个部分组成:

  • 发送部分:早上闹钟响起时自动给运营商发送一条短信查询套餐信息;
  • 接收部分:当收到运营商的套餐信息(可以是自动查询或手动查询的结果)后自动分析短信内容并显示。

发送部分比较比较好实现,可以建立一个自动发短信任务,这个任务由闹钟响起事件触发。另外为了避免其它时候的闹钟触发这个任务,可以增加一个时间限制,比如只有在早上7点到8点之间的闹钟才能触发。

接受部分由一个短信监听任务完成,每次收到短信时将触发这个任务。这个任务首先判断短信发送者是不是运营商,然后判断短信内容是不是查询套餐的短信(使用正则表达式匹配特征字符串),最后就是提取有用信息并发到前端(Minimalistic Text)显示。

 

3、自动发送短信

新建一个Profile,增加两个条件(Context):事件条件为"Alarm Clock",事件条件为7:00~9:00;

添加一个发送短信的任务,内容为"101",接收者为"10010"(根据你的运营商和套餐查询命令而定)。

你可以直接导入我配置好的Profile(针对中国联通3G套餐),点击下载:send_sms_on_alarm.prf,导入后的Profile如下图:

profile send sms on alarm

profile send sms on alarm

 

4、短信内容提取

注:各个运营商的套餐查询短信不容,这里以中国联通为例。

新建一个Profile,事件(Event)为"Received Text"并且Sender为"10010";

添加一个匿名任务;

Profile里已经完成了短信发送者的过滤,因此在Task里收到的短信肯定是10010发的,但是10010发的不一定是套餐查询短信,也可能是广告,因此需要判断是否是套餐短信,这里使用正则表达式来完成。联通3G短信的大致匹配为"^尊敬的[\s\S]*您当前套餐为[\s\S]*本月可用金额[\s\S]*含国内手机上网流量"。

确信短信内容无误后就可以进行信息提取了,下面是一条完整的话费查询信息:

尊敬的某某用户,您当前套餐为WCDMA(3G)-46元基本套餐B套餐。本月可用金额为54.49元。当前实时话费合计71.44元,3G套包内含国内语音拨打时长120分钟,现已使用20分钟;含国内手机上网流量40MB,现已使用0MB;含国内可视电话拨打时长5分钟,现已使用0分钟;含多媒体使用量3M,现已使用0M;含文本使用量5T,现已使用0T。本次查询结果存在时延,敬请留意。广东联通。【买3G就上 10010.com】

Tasker内置了字符串操作函数,我们可以直接使用它来切割字符串,我们将上面这段内容赋值给%mmsgb变量,下面是具体的步骤:

STEP 1:
输入:        mmsgb
分隔符:"本月可用金额为"
结果:
mmsgb1: 尊敬的某某用户,您当前套餐为WCDMA(3G)-46元基本套餐B套餐。
mmsgb2: 115.43元。当前实时话费合计71.74元,3G套包内含国内语音拨打时长120分钟,现已使用13分钟;含国内手机上网流量40MB,现已使用20MB;含国内可视电话拨打时长5分钟,现已使用0分钟;含多媒体使用量3M,现已使用0M;含文本使用量5T,现已使用0T。本次查询结果存在时延,敬请留意。广东联通。【买3G就上 10010.com】

STEP 2:
输入:      mmsgb2
分隔符: "。当前实时话费合计"
结果: mmsgb21: 115.43元 (话费余额信息)
mmsgb22: 71.74元,3G套包内含国内语音拨打时长120分钟,现已使用13分钟;含国内手机上网流量40MB,现已使用20MB;含国内可视电话拨打时长5分钟,现已使用0分钟;含多媒体使用量3M,现已使用0M;含文本使用量5T,现已使用0T。本次查询结果存在时延,敬请留意。广东联通。【买3G就上 10010.com】

提示:Tasker的字符串分割功能会自动将结果保存到数组中,如果你学过编程的话,应该很容易看出mmsgb21其实就是mmsgb[2][1]的意思,只不过Tasker的数组没有方括号而已。

按上面的步骤依次提取剩下的信息,你也可以下载我配置好的Profile(只对联通3G套餐有效),点击下载:send_sms_to_check_phone_quota_recv_.prf

 

5、信息显示

前端依然使用Minimalistic Text来显示,在短信接收的Profile中有一个动作是将提取出的内容发送给Minimalistic Text 的"%DPQUOTA"变量,我们只需在Minimalistic Text里配置显示就可以了。

先添加一个3x1的Widget,排版方式为自定义,然后添加一个本地变量就可以显示了,板式可以自己美化一下。

set MT display

set MT display

最后手动发条短信测试一下吧,如果显示没问题的话以后每天早上这个过程都可以由Tasker自动完成了。

 

更新日志:

2012-11-22:

使用py4a脚本可以在收到短信后可以自动删除或标记短信已读,需要这个功能的朋友可以可以参考py4a的API文档:http://code.google.com/p/android-scripting/wiki/ApiReference。下面是一段删除联通的未读短信的示例代码:

 
  1. """Delete unread msg from China Unicom."""  
  2.   
  3. __author__ = 'Lance Liao'  
  4. __copyright__ = 'Copyright (c) 2012, ShuYZ.com'  
  5.   
  6. import android  
  7.   
  8. droid = android.Android()  
  9. msgIDs = droid.smsGetMessageIds(True, 'inbox').result # List all unread msg by ID  
  10. if(msgIDs.__len__() > 0):  
  11.     for msgID in msgIDs: # Check if the msg is send from China Unicom  
  12.         if ('10010' == droid.smsGetMessageById(msgID).result[u'address']):  
  13.             droid.smsDeleteMessage(msgID) #delete msg  
分享到:
评论

相关推荐

    taskkill:允许按需终止应用程序的 Tasker 插件

    Taskkill 是一个强大的工具,尤其在 IT ...总的来说,Taskkill 插件结合了 Tasker 的自动化能力和 Windows Taskkill 命令的精神,使用户能够在 Android 设备上自动化地按需终止应用程序,提高了设备管理和使用效率。

    Android Tasker

    ### Android Tasker:系统增强利器详解 #### 一、引言 随着移动设备的日益普及,用户对于手机个性化和高效管理的需求也在不断提高。在这样的背景下,Android Tasker(以下简称Tasker)应运而生,成为了Android系统...

    Tasker-Android 系统增强 -4.6

    Tasker绝对称得上是Android系统的神器之一,与Auto Memory Manager不同,Tasker不是加速型的软件,而是系统增强型的软件,由于有众多系统状态可控制,故使得Tasker一跃成为Android系统中最闪亮的明星。但Tasker也...

    Android的Tasker使用详细指南

    Tasker作为Android平台上的一款系统增强型软件,其功能之强大堪称“神器”。不同于其他专注于系统加速的软件,Tasker通过控制多种系统状态,实现了对设备深度定制的能力,使其在Android生态系统中独树一帜。 #### ...

    Tasker的蓝牙插件

    4. **设备配对和发现**:用户可以通过Tasker自动完成蓝牙设备的配对和发现过程,减少了手动操作的繁琐。 5. **自定义配置**:Bluetooth Serial插件提供了丰富的配置选项,你可以定制数据传输的波特率、校验位、停止...

    Tasker插件Autoinput

    Android神器插件Autoinput,不需要你的设备的Root权限! 你可以使用AutoInput来...现在,当你想问自己“我是否能用Tasker来自动化这个应用?”的时候,答案或许将会是“你说不定可以用AutoInput来自动化这个应用”!

    tasker中文完整教程.pdf

    在这样的背景下,Tasker这款强大的Android自动化工具应运而生,为用户提供了在不同环境和条件下定制手机行为的可能性。Tasker通过其独特的配置文件、背景、任务和操作系统,极大地提升了手机使用的灵活性和个性化...

    android.tasker.apk

    android.tasker.apk

    Android的Tasker如何使用中文2MB最新版本

    Android 上的Tasker绝对称得上是Android系统的神器之一,与Auto Memory Manager不同,Tasker不是加速型的软件,而是系统增强型的软件,由于有众多系统状态可控制,故使得Tasker一跃成为Android系统中 最闪亮的明星。...

    Tasker:Android系统增强

    asker绝对称得上是Android系统的神器之一,与Auto Memory Manager不同,Tasker不是加速型的软件, 而是系统增强型的软件,由于有众多系统状态可控制,故使得Tasker一跃成为Android系统中最闪亮的 明星。但Tasker也...

    使用Tasker实现自动转发短信至微信

    使用Tasker和企业微信实现在安卓手机收到短信自动转发至微信的配置。 使用方法见:https://blog.csdn.net/seangxy/article/details/109393325

    Tasker+For+Android使用教程[汇编].pdf

    Tasker For Android 使用教程综述 Tasker 是 Android 系统上的一个真正的神器,它是一款系统增强型的软件,能够控制多个系统状态,成为 Android 系统中最闪亮的明星。 Tasker 的功能极其强大,但同时也使得它变得...

    Tasker Pro 5.7.0.apk

    *显示:自动亮度,关闭系统对话框,键盘锁,键盘锁模​​式,显示屏亮度,显示关闭超时,显示旋转,设置壁纸,保持打开状态栏(展开/折叠) *文件:浏览文件,目录创建/删除/移动,文件复制/删除/移动/打开,写入...

    Tasker.apk Android版

    Tasker是一个让系统根据用户定制的”配置文件”(Profiles),在特定的”背景”下(Contexts),执行指定”任务”(Tasks)的软件,除此之外,它还提供”可供点击”的(Clickable)或”定时运行”的(Timer)桌面”插件”...

    tasker笔记

    Tasker是一款强大的Android系统自动化工具,通过设定各种条件(Context)和任务(Task),实现手机功能的自动化操作。广泛应用于自动化日常操作、提高工作效率等方面。 #### 二、重要知识点详解 ##### 1. 获取当前...

    Tasker 5.6 +notificationlistener_6.0.1 F 安卓

    Tasker是一款强大的自动化工具,专为安卓用户设计,它能够帮助用户通过设定一系列的规则和条件,自动执行各种任务,从而极大地提高了手机的使用效率。标题中的"5.6"和"6.0.1"可能代表软件的版本号,这通常意味着...

    Android高级应用源码-日历源码(自带农历 节气 以及 节日).rar

    该压缩包文件“Android高级应用源码-日历源码(自带农历 节气 以及 节日).rar”提供了一个Android应用程序的源代码,专门用于展示日历功能,包括传统的农历、二十四节气以及节日。这个源码对于Android开发者来说是...

    Tasker_Pro_v5.9.2_beta3.apk

    查询和问题:请参阅菜单/信息/应用内支持修复通过Play商店报告的问题... ******按类别操作** [并非所有设备上都没有所有操作] *警报:闪烁,通知LED /声音/振动,取消通知,定时弹出/ WithTaskIcons /名称,手电筒,...

Global site tag (gtag.js) - Google Analytics