Android手机读取短信验证码,本质其实还是要读取短信内容,再从内容里边抽取验证码。
Android现在短信分为通知信息及其他信息2种。通知类短信,app短信信息读取不到,android系统禁止第三方应用读取,在短信中查看时会看到系统类似“系统已禁止第三方应用自动读取验证码”、“系统已防止第三方应用恶意读取和使用验证码”。如果验证码短信通过个人手机号码来发送,app申请相关短信权限可以读取到。
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
Android手机厂商基本上都对Android系统进行了深度定制,通常获取手机权限的话,在AndroidManifest.xml中配置以上权限就可以了。但是现在中国手机厂商定制的Android系统大部分都将短信分为了通知类短信和其他短信。即使相关短信权限,也读不到通知类短信内容。读取短信内容这种权限毕竟还是比较敏感,涉及到用户信息安全问题,尤其是通知类短信,所以系统禁止读取也是合情合理的。