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

相关推荐

  • 阿里云盘怎么在其他应用打开

    阿里云盘怎么打开其他应用程序? 阿里云盘是一款云存储产品,可以方便地进行文件的存储和管理,支持多种文件格式的上传和下载。在使用阿里云盘的过程中,有时会遇到打开文件时出现其他应用程序的情况。这是因为系统默认使用了其他应用程序来打开该文件,而不是选择阿里云盘自带的应用程序进行打开。 如果想要更改文件的打开方式,可以按照以下步骤进行操作: 1. 找到需要更改打开方…

    2023年8月29日
    93700
  • 南通阿里云代理商:阿里云ssh怎么连接

    要连接阿里云实例,可以使用SSH协议进行连接。以下是连接阿里云实例的步骤: 打开终端(Linux、Mac)或使用SSH客户端(Windows)。 获取阿里云实例的公网IP地址或域名。 使用以下命令连接阿里云实例: ssh username@公网IP地址 其中,username是阿里云实例的用户名,公网IP地址是阿里云实例的公网IP地址。 如果首次连接该实例,…

    2024年2月5日
    66500
  • 阿里云服务器优惠哪里有

    阿里云服务器的优惠活动可以通过以下途径进行了解: 官方网站:在阿里云的官方网站上可以浏览到最新的优惠活动,例如打折、满减、首购等等。 阿里云市场:阿里云市场也会推出一些优惠活动,可以在市场上搜索并了解相关的优惠信息。 阿里云社区:阿里云官方社区中经常会发布一些优惠信息,可以在社区中浏览了解。 阿里云官方微信公众号:关注阿里云官方微信公众号,可以获取到最新的优…

    2023年10月27日
    77000
  • 舞钢阿里云企业邮箱代理商:阿里云企业邮箱送域名吗

    阿里云企业邮箱代理商:阿里云企业邮箱送域名吗 阿里云企业邮箱作为一款专业的企业级邮箱服务,具有许多优势,为用户提供高效便捷的邮件管理和协作工具。通过使用阿里云企业邮箱,我深切感受到了它所带来的种种好处。 一、阿里云企业邮箱的优势 1. 安全可靠:阿里云拥有强大的技术实力和安全防护体系,保障企业邮箱的信息安全和稳定性。邮件传输采用SSL/TLS加密技术,有效防…

    2024年2月16日
    69300
  • 芜湖阿里云代理商:安卓搭建ssh服务器

    阿里云是中国领先的云计算服务提供商,其提供的云服务器可以用来搭建SSH服务器。在安卓设备上搭建SSH服务器,你需要进行以下步骤: 在阿里云官网注册账号并购买云服务器,选择合适的配置和操作系统(比如Ubuntu、CentOS等)。 在安卓设备上下载一个SSH客户端应用,比如JuiceSSH、Termius等。 在云服务器上安装SSH服务器软件,比如OpenSS…

    2024年3月1日
    68600

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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