Android短信读取功能解析
Android 的短信读取功能,其实没你想得那么难搞。关键就是搞清楚权限、理解下ContentResolver和短信数据库怎么运作。文章里教得挺细,像怎么动态申READ_SMS
权限、怎么用content://sms
这个 URI 去拿数据,还有怎么筛选收件箱、监听新短信这些,都讲到了。
读取短信用的是 Android 自带的短信数据库,访问方式是靠ContentResolver。你只要搞清楚Uri smsUri = Uri.parse("content://sms")
,扔个resolver.query()
过去,就能把短信一条条翻出来。遍历Cursor
的时候,可以拿到address
、body
、date
这些字段,还挺全。
如果你只想看收件箱的,可以加个selection = "type = ?"
,selectionArgs = {"1"}
,这样就不会把你发出去的短信混进来了。还能加"date DESC"
来按时间排个序,逻辑清晰。
要做自动的功能,比如有新短信自动提醒啥的,也可以监听android.provider.Telephony.SMS_RECEIVED
广播。不过从 Android 8.0 开始,后台服务和广播用起来比较麻烦,得考虑用JobScheduler或者前台服务。嗯,适配确实有点烦,但文章里也提了注意点。
整个文章读下来,思路挺清楚的,代码也不啰嗦。适合那种想快速上手短信功能的朋友。如果你做的是短信类 App 或者短信验证功能,拿来参考一下准没错。
44.96KB
文件大小:
评论区