北京阿里云代理商: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

相关推荐

  • 华为云数据仓库

    华为云数据仓库是华为云提供的一种大数据存储和处理服务,旨在帮助企业构建和管理可扩展的数据仓库。它提供了以云原生方式构建的数据仓库解决方案,可以将大量结构化和非结构化数据存储在一起,并提供高效的数据分析和处理能力。 华为云数据仓库基于分布式架构,可以实现高可用性和可扩展性。它支持将数据从多种来源导入到仓库中,包括数据库、数据湖和数据流等。用户可以使用SQL查询…

    2023年8月9日
    17800
  • 哈密阿里云企业邮箱代理商:阿里云购买域名流程图

    阿里云企业邮箱代理商:阿里云购买域名流程图 随着企业的日益壮大,邮箱的使用越来越普遍。企业邮箱是指以企业域名为后缀的邮箱,比如XXX@company.com。阿里云作为众所周知的云计算服务提供商,其企业邮箱和企业邮箱代理商也备受瞩目。 要想拥有自己的企业邮箱,第一步就需要购买一个域名。下面我们来看一下阿里云购买域名的流程: 阿里云购买域名流程图 阿里云企业邮…

    2024年3月14日
    14400
  • 阿里巴巴人力资源管理企业文化

    阿里巴巴企业文化有哪些? 阿里巴巴的企业文化包括内容:  第一,充满激情。马云本人极富激情,从创业第一天起就以宏伟目标和远景激发大家。并且通过一系列活动和制度,将这种激情传递给每位员工。其政委制度能随时了解员工的工作状态、及时传达公司的各项活动及政策。其人力资源管理团队非常认同马云,充满激情,而且非常活跃。其内部杂志《阿里人》也透着激情与生活化。  第二,武…

    2023年8月26日
    15500
  • 物联网有哪些云平台

    哪里有比较靠谱的物联网云服务平台可以提供 不知道你是要集成应用还是其他用途,物联网开发很多大企业都有战略布局的。就我知道的物联网战略,其中有自研的物联网操作系统liteos,物联网应用管理平台oceanconnect平台,还有无线、有线两种接入方式,想要更具体的我也说不上来 有哪些成熟的物联网云平台? 深 智 云 的 智 能 硬 件 云 平 台 不 错 。 …

    2023年8月29日
    17500
  • 兰州阿里云代理商:阿里云部署.net项目

    兰州的阿里云代理商可以帮助您在阿里云上部署.NET项目。您可以联系当地的阿里云代理商,告诉他们您的需求,他们将会提供专业的技术支持和服务。 在部署.NET项目之前,您需要准备以下步骤: 购买阿里云服务器:选择适合您项目需求的服务器实例,并根据您的预算选择合适的计费方式。 安装操作系统:根据您的项目需求,选择合适的操作系统,如Windows Server或Li…

    2024年1月30日
    17500

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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