Android Tasker应用之自动查询并显示话费流量套餐信息
注:本文受”86088780”发表在机锋上的文章”【卐解!神器tasker应用教程】 之 入门与日常应用(1-11更新)“启发,特此感谢!
功能需求
- 每天早上闹钟响时,Tasker自动发送短信给运营商查询套餐信息。收到短信后Tasker自动分析短信内容,并将话费余额,流量信息等显示在桌面上。
- 用户可以手动随时给运营商发短信查询,Tasker自动判断为套餐查询信息后提取信息并显示。
- 显示的内容包括更新时间、当前话费、话费余额、剩余流量、剩余语音时长(由运营商提供的信息确定)
实现分析
- 发送部分:早上闹钟响起时自动给运营商发送一条短信查询套餐信息;
- 接收部分:当收到运营商的套餐信息(可以是自动查询或手动查询的结果)后自动分析短信内容并显示。 发送部分比较比较好实现,可以建立一个自动发短信任务,这个任务由闹钟响起事件触发。另外为了避免其它时候的闹钟触发这个任务,可以增加一个时间限制,比如只有在早上7点到8点之间的闹钟才能触发。
自动发送短信
Profile
,增加两个条件Context
:事件条件为Alarm Clock
,事件条件为7:00~9:00;101
,接收者为10010
(根据你的运营商和套餐查询命令而定)。短信内容提取
Profile
,事件Event
为Received Text
并且Sender为10010
;尊敬的某某用户,您当前套餐为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】
信息显示
更新日志
"""Delete unread msg from China Unicom."""
__author__ = 'Lance Liao'
__copyright__ = 'Copyright (c) 2012, ShuYZ.com'
import android
droid = android.Android()
msgIDs = droid.smsGetMessageIds(True, 'inbox').result # List all unread msg by ID
if(msgIDs.__len__() > 0):
for msgID in msgIDs: # Check if the msg is send from China Unicom
if ('10010' == droid.smsGetMessageById(msgID).result[u'address']):
droid.smsDeleteMessage(msgID) #delete msg
作者:Lance | 发表日期:2012 年 11 月 5 日