佛山阿里云代理商: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

相关推荐

  • 临沂阿里云代理商:apache数据库配置 重启吗

    在临沂以及其他地方,使用阿里云的服务时,经常需要配置和管理数据库。如果你提到的是Apache相关的数据库,大概率指的是Apache基金会下的数据库软件,比如Apache Druid、Apache Cassandra等。具体需不需要重启,取决于你所做的配置更改的类型和数据库软件的特性。 以下是一些常见的情况: 配置文件更改: 如果更改了数据库的配置文件(例如d…

    2024年5月30日
    15300
  • 潍坊阿里云代理商:安卓网络访问代码

    要在安卓上通过网络访问潍坊的阿里云服务,通常可以使用 HttpURLConnection 或者使用更现代的库,如 OkHttp。下面是一个简单的例子,展示如何使用 OkHttp 库来发送一个 GET 请求到阿里云服务器: 首先,你需要在你的 Android 项目中添加 OkHttp 库的依赖。在你的 build.gradle 文件的 dependencies…

    2024年6月28日
    14700
  • 阿里云企业邮箱:如何用企业邮箱优化连锁酒店运营?

    如何通过阿里云企业邮箱优化连锁酒店运营 随着连锁酒店行业的竞争日益激烈,提升运营效率和服务质量已成为酒店管理者的当务之急。作为一种重要的企业通讯工具,阿里云企业邮箱不仅在日常沟通中发挥着至关重要的作用,还能帮助酒店提升内部管理、优化客户服务,并推动整体运营的数字化转型。 1. 提高内部沟通效率 连锁酒店的管理通常涉及多个分店,每个分店都有不同的管理团队和运营…

    6天前
    1500
  • 阿里云数据库外网无法访问

    如果阿里云数据库外网无法访问,可以按照以下步骤进行排查和解决: 确保您的阿里云数据库已开启外网访问权限,可以登录阿里云控制台,在实例详情页查看是否开启了”公网地址”和”外网端口”。 检查防火墙规则设置,确保阿里云数据库的”入方向”和”出方向”都允许了数据库的外网访…

    2023年10月22日
    15800
  • 阿里为什么能做成云计算

    什么是云计算,aws造云工厂来解答 国内的话,阿里云起步比较早,而且因为阿里系的基因,云计算这种开放性的服务做得比较好。腾讯刚起步,还不行,而且我也不看好,不是因为技术能力,而是基因。并且这家公司总是做这种阻击型产品,谁知道最后做成什么样(想想当初用来阻击新浪微博的腾讯微博)。AWS很不错,云服务最好用最牛的一家,无可挑剔。但是在国内使用你得慎重。一是他在国…

    2023年8月25日
    16800

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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