AndroidSDK30+中“Urinullafternullcheck-SMSContentprovider”
创始人
2024-10-10 01:00:24
0

在Android SDK 30及以上版本中,SMS Content provider的访问权限被限制,只能在特定的条件下才能获得访问权限。因此,在尝试从SMS Content provider获取数据时,需要进行更严格的空指针检查。

以下是一个示例,说明如何正确地访问SMS Content provider:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS)
        == PackageManager.PERMISSION_GRANTED) {
    Cursor cursor = getContentResolver().query(Telephony.Sms.CONTENT_URI,
            null, null, null, null);
    if (cursor != null && cursor.moveToFirst()) {
        do {
            // 处理短信记录
            String address = cursor.getString(cursor.getColumnIndex(Telephony.Sms.ADDRESS));
            String body = cursor.getString(cursor.getColumnIndex(Telephony.Sms.BODY));
            long date = cursor.getLong(cursor.getColumnIndex(Telephony.Sms.DATE));
        } while (cursor.moveToNext());
        cursor.close();
    }
}

在此示例中,首先使用ContextCompat.checkSelfPermission()检查应用程序是否具有读取SMS的权限。如果有,就可以使用getContentResolver().query()方法从Telephony.Sms.CONTENT_URI中获取SMS记录。然后检查返回的游标是否为空,并逐行处理SMS记录。

在以上代码中,我们可以看到,我们对返回的cursor变量进行了非空检查。这可以帮助我们避免出现“Uri null after null check”错误。

相关内容

热门资讯

专业一下!财神十三张脚本辅助,... 专业一下!财神十三张脚本辅助,超圣大厅可控是什么意思,本来存在有挂(哔哩哔哩)1、该软件可以轻松地帮...
揭露一下!填大坑微信小程序辅助... 揭露一下!填大坑微信小程序辅助,皇豪互众智能辅助器,原来是有挂(哔哩哔哩)1、填大坑微信小程序辅助辅...
解密一下!填大坑辅助器,蜀门手... 解密一下!填大坑辅助器,蜀门手游辅助免费脚本,总是真的是有挂(哔哩哔哩)1、玩家可以在蜀门手游辅助免...
解迷一下!广西老友有破解吗,u... 解迷一下!广西老友有破解吗,uuganmes辅助器,其实真的是有挂(哔哩哔哩)1、玩家可以在广西老友...
专业一下!圣盛荆州晃晃三五七辅... 专业一下!圣盛荆州晃晃三五七辅助,吉林心悦有挂吗,总是真的有挂(哔哩哔哩)运圣盛荆州晃晃三五七辅助辅...
必备一下!新超圣辅助靠谱不,奇... 必备一下!新超圣辅助靠谱不,奇迹陕西辅助,真是存在有挂(哔哩哔哩)1、必备一下!新超圣辅助靠谱不,奇...
解谜一下!情怀麻将辅助,蜀渝牌... 解谜一下!情怀麻将辅助,蜀渝牌乐汇挂机软件,切实有挂(哔哩哔哩)该软件可以轻松地帮助玩家将蜀渝牌乐汇...
解谜一下!边锋嘉兴红十辅助,约... 解谜一下!边锋嘉兴红十辅助,约战大同辅助,总是是有挂(哔哩哔哩)在进入边锋嘉兴红十辅助软件靠谱后,参...
辅助一下!微信小程序透视挂,博... 辅助一下!微信小程序透视挂,博雅红河西元红河挂,一贯真的是有挂(哔哩哔哩)1)博雅红河西元红河挂有没...
解密一下!边锋嘉兴辅助,创思维... 解密一下!边锋嘉兴辅助,创思维激k辅助工具,其实是有挂(哔哩哔哩)1、该软件可以轻松地帮助玩家将创思...