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”错误。

相关内容

热门资讯

玩家必看分享!wepoker私... 玩家必看分享!wepoker私人局规律,hhpoker辅助,都是真的是有挂(确实有挂)1、金币登录送...
分享开挂内幕!hhpoker是... 分享开挂内幕!hhpoker是真的假的,poker world辅助器,都是有挂(有挂方略)1、模拟器...
总算了解!wepoker底牌透... 总算了解!wepoker底牌透视,拱趴大菠萝有挂吗,真是真的有挂(有挂解惑)1、起透看视 辅助软件价...
六分钟了解!hhpoker可以... 六分钟了解!hhpoker可以控制吗,wepoker私人局怎么玩,其实是有挂(确实有挂);1、辅助软...
重大通报!wpk俱乐部是真的吗... 重大通报!wpk俱乐部是真的吗,德州透视hhpoker,都是是有挂(有挂方法)1、免费辅助多个强度级...
玩家爆料!佛手在线大菠萝智能辅... 玩家爆料!佛手在线大菠萝智能辅助器,wpk模拟器多开,本来有挂(有挂规律)1、玩家爆料!佛手在线大菠...
重大推荐!拱趴大菠萝作弊方法,... 重大推荐!拱趴大菠萝作弊方法,wpk模拟器多开,真是是有挂(有挂教学)1、不需要AI权限,帮助你快速...
每日必看推荐!约局吧游戏挂,w... 每日必看推荐!约局吧游戏挂,we-poker辅助,一贯真的有挂(有挂攻略)1、下载好正确养号方法之后...
今日头条!hhpoker免费辅... 今日头条!hhpoker免费辅助器,约局吧开挂,真是是真的有挂(有挂功能)1、点击下载安装,hhpo...
记者发布!hhpoker的辅助... 记者发布!hhpoker的辅助是真的吗,sohoo开挂辅助,竟然是有挂(有人有挂)1、起透看视 辅助...