Android短信读取功能解析

Android 的短信读取功能,其实没你想得那么难搞。关键就是搞清楚权限、理解下ContentResolver和短信数据库怎么运作。文章里教得挺细,像怎么动态申READ_SMS权限、怎么用content://sms这个 URI 去拿数据,还有怎么筛选收件箱、监听新短信这些,都讲到了。

读取短信用的是 Android 自带的短信数据库,访问方式是靠ContentResolver。你只要搞清楚Uri smsUri = Uri.parse("content://sms"),扔个resolver.query()过去,就能把短信一条条翻出来。遍历Cursor的时候,可以拿到addressbodydate这些字段,还挺全。

如果你只想看收件箱的,可以加个selection = "type = ?"selectionArgs = {"1"},这样就不会把你发出去的短信混进来了。还能加"date DESC"来按时间排个序,逻辑清晰。

要做自动的功能,比如有新短信自动提醒啥的,也可以监听android.provider.Telephony.SMS_RECEIVED广播。不过从 Android 8.0 开始,后台服务和广播用起来比较麻烦,得考虑用JobScheduler或者前台服务。嗯,适配确实有点烦,但文章里也提了注意点。

整个文章读下来,思路挺清楚的,代码也不啰嗦。适合那种想快速上手短信功能的朋友。如果你做的是短信类 App 或者短信验证功能,拿来参考一下准没错。

zip 文件大小:44.96KB