Android手机使用Tasker转发短信及来电

起因

更换手机号及手机后,原手机及手机号成为备用机。因为各种原因,无法弃用以及不能把原手机卡插到新手机里,故想转发备用机的短信及来电至新手机上

工具

  1. tasker
  2. php
  3. 邮箱

操作

takser设置

以短信为例,在tasker上新建一个配置文件,手都短信,任意

并添加任务,名称随意,以方便自己识别为准。新建一个HTTP POST操作,内容参考

必要说明:

  1. mode=sms表示内容为短信,方便和电话等其它操作共用api
  2. 服务器端采用token鉴权。设计中服务器端支持多用户多手机,采用token来识别不同的手机

服务器(部分/伪)代码

伪代码

if ($post['token'] == '指定的token'){

if (preg('<span style="font-size: 1rem;">/(检验码|验证码|快递|快件|腾讯|支付宝|中国农业银行)/</span><span style="font-size: 1rem;">', $post['content'])){</span>

sendmail('邮箱',$post['content']);

}

DbInsert($post);

}

框架为CI,控制器部分

 

//处理送来的时间。从takser送来的时间为12.30形式,处理成12:30形式方便写数据库,防止整点12.00变成12导致的错误,可能非必需

$time_arr = explode('.',$this-&gt;input-&gt;post('time'));

if (count($time_arr)&gt;=2){
 $time = ($this-&gt;input-&gt;post('date').' '.$time_arr[0]. ':' .$time_arr[1]); 
 }else{
   $time = ($this-&gt;input-&gt;post('date').' '.$time_arr[0]. ':0' ); 
 }

//正则匹配一些特殊的字符串,保护如下字符串的短信,将被转发至邮箱(如移动139邮箱,实现免费的短信转发/来电提醒),其余短信只存入数据库。

$pattern = '/(检验码|验证码|快递|快件|腾讯|支付宝|中国农业银行)/';
 preg_match($pattern, $this-&gt;input-&gt;post('content'), $matches, PREG_OFFSET_CAPTURE);
 if($matches){
   $mail_content = '目标手机:'.$phone."\r\n时间:".$time."\r\n来源:".$this-&gt;input-&gt;post('name').'('.$this-&gt;input-&gt;post('from').')'."\r\n内容:".$this-&gt;input-&gt;post('content');
   $this-&gt;sendMail('Email地址','短信:'.mb_substr($this-&gt;input-&gt;post('content'),0,20),$mail_content);
 }

return $this-&gt;sms_model-&gt;addSms($uid,$phone,$this-&gt;input-&gt;post('from'),$this-&gt;input-&gt;post('name'),$time,$this-&gt;input-&gt;post('content'));

模型部分略,就是写数据库,该函数返回值为字符串,不涉及视图层

 

服务器部分代码还包括了查看短信及来电的UI部分,因为代码目前仅支持单用户,以及必要的UI没有完善,暂不提交github。

 

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注