佛山阿里云代理商:android 7.0 获取短信

要获取Android 7.0上的短信,您需要先请求READ_SMS和RECEIVE_SMS权限。然后,您可以使用ContentResolver访问短信的Uri,并使用Cursor读取短信。以下是一个示例代码:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) == PackageManager.PERMISSION_GRANTED
        && ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) == PackageManager.PERMISSION_GRANTED) {
    Uri uri = Uri.parse("content://sms/inbox");
    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
    while (cursor != null && cursor.moveToNext()) {
        String address = cursor.getString(cursor.getColumnIndex("address"));
        String body = cursor.getString(cursor.getColumnIndex("body"));
        // Do something with the address and body of the SMS
    }
    if (cursor != null) {
        cursor.close();
    }
} else {
    // Request runtime permissions
}

请注意,您需要在应用中处理运行时权限,以避免在用户未授予权限的情况下访问短信。

获取短信需要获取短信读取权限,Android 6.0 及以上版本需要动态申请权限。

首先,在 AndroidManifest.xml 文件中添加以下权限:

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

然后,在代码中添加动态权限申请:

佛山阿里云代理商:android 7.0 获取短信
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    // 判断 Android 版本是否大于等于 6.0
    if (checkSelfPermission(Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED) {
        // 如果未授权,则向用户申请授权
        requestPermissions(new String[] {Manifest.permission.READ_SMS}, 1);
    }
}

// 授权结果回调方法
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == 1) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // 用户授权
            // 进行获取短信的操作
        } else {
            // 用户拒绝授权
            Toast.makeText(this, "请授权以获取短信", Toast.LENGTH_SHORT).show();
        }
    }
}

获取短信的代码如下:

Uri uri = Uri.parse("content://sms/inbox");
// 查询条件,只查询发送号码包含139的短信
String selection = "address like '%139%'";
Cursor cursor = getContentResolver().query(uri, null, selection, null, null);
if (cursor != null && cursor.getCount() > 0) {
    // 遍历短信
    while (cursor.moveToNext()) {
        String address = cursor.getString(cursor.getColumnIndex("address"));
        String body = cursor.getString(cursor.getColumnIndex("body"));
        // 处理短信
    }
    cursor.close();
}

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

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月10日 21:45
下一篇 2024年3月10日 22:26

相关推荐

  • 唐山阿里云代理商:android 获取网络图片存粗到本地

    下面是一个间单的示例,关于如何在 Android 中从网络获取图片并将其存储到本地: 首先,需要在AndroidManifest.xml文件中添加以下权限: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission an…

    2024年3月14日
    3200
  • 临汾阿里云企业邮箱代理商:阿里巴巴国际站报价邮件

    临汾阿里云企业邮箱代理商:阿里巴巴国际站报价邮件 在现代商务通讯中,一个可靠和高效的企业邮箱是非常重要的。临汾阿里云企业邮箱作为阿里巴巴集团旗下的产品,具有很多优势和特点,为企业提供了全面的通信解决方案。 1. 高级安全防护 作为一家使用阿里云企业邮箱的企业,您可以享受到阿里巴巴强大的安全防护体系。它采用了多层次的安全机制,包括防病毒、反垃圾邮件、反钓鱼等功…

    2024年1月24日
    3800
  • 郑州阿里云代理商:阿里云 磁盘

    郑州有许多阿里云的代理商,他们可以帮助客户购买和使用阿里云提供的各种产品和服务,包括云服务器、存储解决方案、数据库服务、网络服务等。如果您具体想了解有关阿里云磁盘(例如云盘、SSD、HDD等)的信息,以下是一些常见问题和解答: 云盘类型 高效云盘(ESSD): 适用场景:高负载的应用、低延迟需求的应用。 特点:提供最高性能和最低延迟的云盘类型。 SSD云盘:…

    2024年5月30日
    2000
  • 徐州阿里云代理商:aspx 操作数据库

    ASPX是微软的一种用于构建Web应用程序的编程语言,而”操作数据库”通常是指使用编程语言来查询或修改数据库中的数据。 如果你是在寻找如何使用ASPX来操作数据库,那么你需要了解的是ADO.NET,这是一个用于连接数据库并执行SQL语句的.NET框架组件。 以下是一段ASPX操作数据库的基本示例代码: <%@ Import Na…

    2024年3月13日
    3300
  • 阿里云视频服务器怎么用

    阿里云视频服务器用于存储和分发视频内容,可以提供视频点播、直播、转码和加密等功能。 使用阿里云视频服务器,您可以按照以下步骤进行操作: 注册阿里云账号并登录,进入阿里云视频服务器控制台。 创建存储空间(Bucket),用于存储视频文件。可以根据需求选择存储空间的地域和访问权限。 上传视频文件到存储空间。可以通过控制台的网页上传、API接口或者使用阿里云提供的…

    2023年8月25日
    4000

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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