潍坊阿里云代理商:android 7.0 读取短信

在Android 7.0以及更高的版本中,需要申请权限来读取短信。这包括READ_SMS权限和RECEIVE_SMS权限。这些权限必须在运行时请求,而且用户必须明确地授予这些权限。

以下是获取这些权限的代码示例:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (checkSelfPermission(Manifest.permission.READ_SMS) == PackageManager.PERMISSION_DENIED) {
        Log.d("permission", "permission denied to READ_SMS - requesting it");
        String[] permissions = {Manifest.permission.READ_SMS};

        requestPermissions(permissions, PERMISSION_REQUEST_READ_SMS);

    }
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (checkSelfPermission(Manifest.permission.RECEIVE_SMS) == PackageManager.PERMISSION_DENIED) {
        Log.d("permission", "permission denied to RECEIVE_SMS - requesting it");
        String[] permissions = {Manifest.permission.RECEIVE_SMS};

        requestPermissions(permissions, PERMISSION_REQUEST_RECEIVE_SMS);
    }
}

一旦用户授予了这些权限,你就可以使用ContentResolver来查询和读取短信。

例如:

ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(Telephony.Sms.Inbox.CONTENT_URI, null, null, null, null);
int indexBody = cursor.getColumnIndex(Telephony.Sms.Inbox.BODY);
int indexAddr = cursor.getColumnIndex(Telephony.Sms.Inbox.ADDRESS);

if (indexBody < 0 || !cursor.moveToFirst()) return;

do {
    String strBody = cursor.getString(indexBody);
    String strAddress = cursor.getString(indexAddr);
} while (cursor.moveToNext());

请注意,从用户那里获取这些敏感权限需要提供合理的解释,并且你的应用必须遵守所有的隐私政策和用户条款。

在Android 7.0或更高版本中,应用需要用户授予读取短信的权限才能读取短信。以下是Android 7.0读取短信的大致步骤:

  1. 在AndroidManifest.xml文件中请求必要的权限,如下:
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
  1. 在需要读取短信的地方请求权限。可使用Android的PermissionCompat类请求权限。例如:
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_SMS}, MY_PERMISSIONS_REQUEST_READ_SMS);

其中,MY_PERMISSIONS_REQUEST_READ_SMS是你定义的请求码,用于在请求权限的回调方法onRequestPermissionsResult()中识别请求来源。

  1. 在onRequestPermissionsResult()方法中处理权限请求的结果。如果权限被授予,你可以继续进行读取短信的操作。

例如,可以通过ContentResolver查询设备的短信数据库:

潍坊阿里云代理商:android 7.0 读取短信
Uri uri = Uri.parse("content://sms/inbox");
Cursor cursor = getContentResolver().query(uri, null, null, null, null);

注意:自Android 6.0(API级别23)起,用户可以在任何时候撤销应用的权限。因此,应用在运行时需要检查是否还有必要的权限,如果没有,需要重新请求。

以上只是基础的步骤和信息,具体的操作可能需要根据你的应用需求和实际情况进行调整。

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

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月16日 18:55
下一篇 2024年3月16日 18:59

相关推荐

  • 阿里云容器运行项目相对路径

    我在本地运行我的java web项目可以正常运行,我部署到了阿里云服务器之后,出现了is not a function “不能存在这个方法”一般情况是:js引入地址不正确建议你js路径写绝对路径/项目名字/js/jquery.js或者http://ip:端口/项目名字/js/jquery.js 阿里云服务器php ini~呢? #在阿里云服务上,运行php …

    2023年8月25日
    18100
  • 阿里巴巴云客服售后

    阿里巴巴云客服售后是阿里巴巴旗下云计算服务的售后服务团队。阿里巴巴云客服售后团队致力于为客户提供优质的售后服务,包括故障排查、问题解答、技术支持等。无论是在购买阿里巴巴云计算服务之前还是在使用过程中遇到问题,客户都可以通过阿里巴巴云客服售后团队寻求帮助和解决方案。阿里巴巴云客服售后团队拥有专业的技术人员和完善的售后服务流程,致力于为客户提供快速、准确、高效的…

    2023年10月30日
    17200
  • 云服务物联网技术应用

    云计算的应用技术有哪些 云物联物联网的两种业务模式:1.MAI(M2M Application Integration), 内部MaaS;2.MaaS(M2M As A Service), MMO, Multi-Tenants(多租户模型)。随着物联网业务量的增加,对数据存储和计算量的需求将带来对“云计算”能力的要求:1.云计算:从计算中心到数据中心在物联网…

    2023年8月29日
    17900
  • 阿里云服务器开放端口如何设置

    要开放阿里云服务器的端口,需要按照以下步骤进行设置: 登录阿里云控制台,并进入 “云服务器 ECS” 页面。 找到需要设置端口的服务器,并点击其名称进入详情页面。 在详情页面的左侧导航栏中,找到 “网络和安全”,并点击 “安全组”。 在安全组页面,点击 “配置规则&#8221…

    2023年9月3日
    15800
  • 阿里云数据库价格查询在哪里看到

    您可以登录阿里云官方网站,选择”云数据库RDS”产品,在产品详情页面中可以查看到RDS的不同规格和定价信息。 阿里云数据库价格查询可以在阿里云官方网站上查看。具体步骤如下: 打开阿里云官方网站(https://www.alibabacloud.com/)。 在网站顶部导航栏上找到“产品”选项,将鼠标悬停在“产品”上。 在弹出的菜单中,…

    2023年10月20日
    17800

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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