北京阿里云代理商:android4.0 读取短信

在Android 4.0及更高版本中,应用需要用户的明确同意才能读取他们的短信。在您的应用中,首先需要在应用的清单文件中添加 “READ_SMS”权限:

<uses-permission android:name="android.permission.READ_SMS"/>

然后,在您的应用需要读取短信的时候,需要动态请求用户权限:

if (checkSelfPermission(Manifest.permission.READ_SMS)
    != PackageManager.PERMISSION_GRANTED) {
    requestPermissions(new String[]{Manifest.permission.READ_SMS},
        MY_PERMISSIONS_REQUEST_READ_SMS);
}

在权限被用户授权后,您就可以读取短信数据:

Uri smsUri = Uri.parse("content://sms/inbox");
Cursor cursor = getContentResolver().query(smsUri, null, null, null, null);

while(cursor.moveToNext()) {
    String address = cursor.getString(cursor.getColumnIndex("address"));
    String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
    // do something
}

请注意,因为隐私问题,Google在Android Q(10)开始不再允许应用读取短信日志,除非应用设置为默认的短信应用。所以在Android Q及以后的版本,上述代码可能无法正常工作。

Android 4.0读取短信功能需要调用SMS相关API,主要步骤如下:

1)首先,你需要在AndroidManifest.xml文件中添加READ_SMS权限,以便你的应用程序可以读取用户的短信。

<uses-permission android:name="android.permission.READ_SMS"/>

2)然后,你可以通过以下方式读取短信:

Uri uri = Uri.parse("content://sms/inbox");
Cursor c= getContentResolver().query(uri, null, null ,null,null);
startManagingCursor(c);

// Read the sms data and store it in the list
if(c.moveToFirst()) {
    for(int i=0; i < c.getCount(); i++) {
        SMSData sms = new SMSData();
        sms.setBody(c.getString(c.getColumnIndexOrThrow("body")).toString());
        sms.setNumber(c.getString(c.getColumnIndexOrThrow("address")).toString());
        smsList.add(sms);
        
        c.moveToNext();
    }
}
c.close();

以上代码首先从sms/inbox的Uri中得到一个cursor,然后遍历cursor并将数据存储在SMSData列表中。SMSData是一个简单的类,包括了短信的body和number。

注:“number”表示发送短信者的手机号,“body”表示短信内容。

北京阿里云代理商:android4.0 读取短信

请注意,这只会读取收到的短信,如果你希望读取已发送的短信,你可以改变uri为”content://sms/sent”。

还需要引起注意的是,从Android 4.4(API level 19)开始,只有默认的短信应用才能对SMS数据库有写入权限。其他应用只允许读取短信。同时,在安卓Q 或以上版本,默认短信应用需要添加sms相关权限,比如:

<uses-permission
    android:name="android.permission.WRITE_SMS"
    android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/166563.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月15日 18:51
下一篇 2024年3月15日 18:52

相关推荐

  • 朝阳阿里云企业邮箱代理商:阿里邮箱企业版手机版怎么改密码

    阿里云企业邮箱代理商:阿里邮箱企业版手机版怎么改密码 阿里云企业邮箱是一款可定制化的企业级电子邮件服务,提供安全可靠的电子邮件和协同办公解决方案。以下是介绍阿里云企业邮箱的优势,并详细说明如何在手机版上更改密码。 阿里云企业邮箱的优势: 安全性高: 阿里云企业邮箱采用先进的反垃圾和反病毒技术,确保你的电子邮件安全受保护。 定制化配置: 你可以根据企业的需求自…

    2024年1月30日
    31800
  • 阿里巴巴人力资源管理分析

    阿米巴模式如何运用于企业的人力资源管理? 阿米巴经营模式是企业在业务领域的创新模式,直观表象为“化整为零、自主经营”,每个阿米巴经营单元在规则范围内均具备较高的自主权,以期形成灵活、高效的经营发展效果。为了配合企业推行阿米巴经营模式,人力资源管理通常需要做好以下三方面的工作:1. 培训:尤其是对于阿米巴经营单元负责人(俗称小CEO)的培训,帮助他们熟悉阿米巴…

    2023年8月25日
    29700
  • 阿里巴巴宣化云计算

    什么是阿里云计算,阿里云计算怎么样 阿里云计算有限公司于2009年9月10日成立,由阿里巴巴集团投资创办,目标是要打造互联网数据分享的第一平台,成为以数据为中心的先进云计算服务公司。公司依托阿里巴巴集团在电子商务领域的宝贵经验积累,汇集来自国内外顶尖的技术人才,专注互联网和电子商务的技术创新,打造未来互联网和电子商务的新体验,用世界一流的技术让阿里巴巴成为世…

    2023年8月26日
    30200
  • 六盘水阿里云企业邮箱代理商:阿里云服务器架设传奇

    六盘水阿里云企业邮箱代理商:阿里云服务器架设传奇 阿里云企业邮箱作为一款领先的企业级邮件服务,为企业提供稳定、安全、高效的邮件通讯解决方案。而选择合适的阿里云企业邮箱代理商,能够帮助企业更好地管理和维护企业邮箱服务,提升工作效率。 优势一:阿里云企业邮箱 阿里云企业邮箱拥有强大的防护机制,可以有效防范垃圾邮件和病毒攻击,确保企业邮箱的安全性和稳定性。同时,阿…

    2024年2月26日
    27500
  • 阿里巴巴的云计算估值怎么样啊

    阿里云的云计算价值 阿里巴巴集团首席技术官王坚,曾系统性链消茄地概括了云计算对于未来世界的价值1、互联网是基础设施互联网是基础设施。作为一种通用技术,互联网和100年前的电力技术,200年前的蒸汽机技术一样,将对人类社会产生巨大、深远而广泛的影响。互联网作为国家信息基础设施,就像公路、港口、水、电、煤等一样,越来越成为国民经济各项事业发展的基础,越来越成为国…

    2023年8月28日
    30700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/