如何让Android自动接受新短信并通过Gmail发送

肉壳有一部安德猴手机,因为喜新厌旧,去年换成了iPhone……虽然换了新手机,觉得很厉害,但是,旧手机既然还能用,就要让他继续发挥余热。于是肉壳把自己不常用的天津手机卡放在了这个手机里……因为这个号码是肉壳第一个手机号,所以,很多验证码都是绑定在这个手机的,所以,有些时候,需要验证码的时候,这个手机又没有带在身上,是一件非常令人苦恼的事情。所以本着自己动手丰衣足食的原则,自己写了个小android程序,帮助自己把接收到的新短信,自动用Gmail发送给一个预设邮箱……

在完成这件任务之前,你需要做一件事,就是安装一个修改过权限的Gmail客户端,因为原版Gmail有个Auto Send权限,但是,类型是signature。也就是说,这个权限只能由系统或者应用本身调用,也就是说,作为第三方的我们是无法调用的,所以大家可以看看这个帖子,学习一下,如何将signature权限修改为normal权限,这里就不再赘述了,因为肉壳也是直接从论坛里下载下来的。

然后,如果你用的是MIUI,你还需要做一件事,跟我一起做,设置->小米云服务->免费网络短信->高级设置->系统短信优先,把这个系统短信优先关掉,因为这个设置会拦截所有android系统内部的SMS Receiver,导致我们的程序不能实时检测到新短信。

接下来,我们就可以开始了……

首先,AndroidManifest.xml, 我们要添加收取短信的权限和Gmail的Auto Send权限……

之后,我们一步一步来,先做拦截新短信的功能。

所以继续编辑AndroidManifest.xml,我们要写一个Receiver。

然后,我们就可以新建一个类,比如“SMSBroadcastReceiver“,内容大概是

这样子,我们就可以在收到新短信的时候,获取到短信内容了,大家可以试试给虚拟机塞一条信息,或者给真机发条短信试试……

搞定短信接收问题之后,下一步就是用Gmail来发送邮件,其实,可以用系统自带的Mail来发邮件,但是需要手动按发送才可以将内容发送出去。虽说可以通过一些包或者一些复杂的手段实现自动发送,可是还是觉得略麻烦……所以我们用修改过的Gmail附带的AUTO SEND权限就好了……用法也非常简单……直接看代码……

至此,这个应用就完成了,测试了一下,一切OK,以后再需要收验证码,只要上我的邮箱就好咯……以后有时间还可以做一个回复邮件自动发短信的功能,而且,最好能脱离Gmail的限制。其实也不难的,有时间再说吧,这个应急就行……

代码我放在Github(https://github.com/Rokeer/MailMySMS)上了,大家可以自己去看看……写的很水,连界面都没有做……

大概就是这样……