首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我的应用程序不能从API 23自动读取sms

问题:我的应用程序不能从API 23自动读取SMS。

回答: 在Android 6.0(API 23)及更高版本中,Google引入了运行时权限模型,其中包括对敏感权限的限制,如读取短信。这意味着您的应用程序需要在运行时请求用户授予读取短信的权限,否则将无法自动读取SMS。

解决此问题的步骤如下:

  1. 在AndroidManifest.xml文件中添加权限声明:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_SMS" />

这将确保您的应用程序具有读取短信的权限声明。

  1. 在您的应用程序代码中,使用运行时权限请求框架来请求读取短信的权限。以下是一个示例代码片段:
代码语言:txt
复制
// 检查是否已经获得读取短信的权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED) {
    // 如果没有权限,则请求权限
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_SMS}, PERMISSION_REQUEST_CODE);
} else {
    // 如果已经有权限,则执行读取短信的操作
    readSMS();
}

在上述代码中,PERMISSION_REQUEST_CODE是您自定义的请求代码,readSMS()是您自定义的读取短信的操作。

  1. 处理权限请求的回调结果。在您的Activity中,覆盖onRequestPermissionsResult方法:
代码语言:txt
复制
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == PERMISSION_REQUEST_CODE) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // 用户授予了读取短信的权限,执行读取短信的操作
            readSMS();
        } else {
            // 用户拒绝了读取短信的权限,处理相应逻辑
            // 可以向用户解释为什么需要该权限,并提供手动设置的指引
        }
    }
}

在上述代码中,您可以根据用户的授权结果执行相应的操作。

需要注意的是,读取短信的权限是敏感权限,因此在请求权限时,应向用户解释为什么需要该权限,并提供相关的合理解释。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云短信服务:腾讯云提供的短信服务,可用于发送和接收短信验证码、通知等。
  • 腾讯云移动推送:腾讯云提供的移动推送服务,可用于向移动设备发送推送通知。

以上是关于您的应用程序无法从API 23自动读取SMS的解决方法和相关腾讯云产品介绍。请根据您的具体需求和场景选择适合的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Google年度安全报告--8大潜在恶意程序

IcicleGum应用程序使用该库代码加载功能从命令和控制服务器通过HTTP获取加密DEX文件。 这些文件然后解密并通过类反射加载,以读取和发送电话呼叫记录和其他数据到远程位置。...在某些情况下,BreadSMS应用程序还实施基于订阅SMS欺诈,并默默注册用户使用其移动运营商提供服务。...这些应用程序链接到一组命令和控制服务器,这些服务器IP地址经常变化,并用于向应用程序提供高级SMS号码和消息文本。...借助这些令牌,Gaiaphish应用程序能够生成垃圾邮件并自动发布内容(例如,假应用程序评分和评论)。...印度在2017年Gaiaphish下载量最高(占总数23%).Installs来自Google Play以及Google Play之外(分别为51%,49%)。

1.4K80
  • 【权限问题专项】短信权限合理使用场景VS不合理使用场景说明

    下图为《绿标5.0安全标准》对于短信权限要求: 1.android.permission.SEND_SMS 权限定义:允许应用程序发送短信。...:允许应用程序监听用户手机上接收到短信; 2)android.permission.READ_SMS:允许应用程序读取用户手机上短信。...不合理使用场景 在用户注册、登录账号场景下,用户输入手机号码后,点击获取验证码,用户收到短信后,应用程序自动识别短信内容,并将验证码显示在键盘上。...2)动态短信密码和帐号验证可实现方案:SMS Retriever API 可使应用自动以短信方式执行用户验证,不需要用户手动输入验证码,也无需任何额外应用权限。...如果 SMS Retriever API 不适用,用户也可以手动输入验证码。 以上就是短信权限内容,后续还会发布电话、通讯录、存储、无障碍、设备管理器、通知栏、悬浮窗内容,请持续关注软件绿色联盟。

    2K20

    Android 6.0 权限行为变更详解

    这两个方法都是在 API 23 后引入,也就是说在之前 API 中是没有这俩方法。...如果你 minSdkVersion 设置值是在 23 以下的话,直接调用上面的方法会有这种提示 Call requires API level 23 (current min is 21):.......提示说很清除了,调用这种方法是需要 API 23 ,而当前 min 是 21,也就说明你 APP 是可以运行在 Android 5.0 系统手机上面的,然而 checkSelfPermission...普通权限,如果应用程序在其清单中声明了,则系统会在安装时自动授予应用程序该权限,系统不会提示用户授权普通权限,用户也无法撤销 ACCESS_LOCATION_EXTRA_COMMANDS ACCESS_NETWORK_STATE...例如,需要发送 SMS 消息应用程序需要在清单文件中声明下面的权限:如何获取权限 <uses-permission android:name = “android.permission.SEND_SMS

    93020

    【Android从零单排系列四十四】《聊一下Android数据权限permission》

    一.Android 数据权限基本介绍 在Android中,权限管理是确保应用程序能够安全地访问系统功能和用户敏感信息重要方面。...危险权限涉及到用户敏感信息和设备功能,需要经过用户授权才能使用;而普通权限不需要用户明确授权,系统会自动授予。...运行时权限:自Android 6.0(API级别23)起,引入了运行时权限机制。对于危险权限,即使在清单文件中声明了,应用程序依然需要在运行时动态请求权限。...正常权限(Normal Permissions):这些权限不会直接涉及用户隐私或敏感数据,通常不需要用户明确授权。应用程序在清单文件中声明这些权限后,系统会自动授予它们。...to read SMS messages.) android.permission.READ_SYNC_SETTINGS允许程序读取同步设置(Allows applications to read the

    91410

    android 权限列表

    , 只有非常少应用才用到此权限 013 BIND_CARRIER_MESSAGING_SERVICE API等级高于23时使用,否则使用 BIND_CARRIER_SERVICES 014 BIND_CARRIER_SERVICES...089 READ_PHONE_STATE 允许程序访问电话状态 读取电话状态 090 READ_SMS 允许程序读取短信内容 091 READ_SYNC_SETTINGS 允许程序读取同步设置,读取Google...095 RECEIVE_BOOT_COMPLETED 允许程序开机自动运行 096 RECEIVE_MMS 允许程序接收彩信 097 RECEIVE_SMS 允许程序接收短信 098 RECEIVE_WAP_PUSH...102 REQUEST_INSTALL_PACKAGES 允许应用程序请求安装包。针对API大于22必须持有 该许可使用ACTION_INSTALL_PACKAGE应用。...允许程序读取同步设置,读取Google在线同步设置 51.android.permission.READ_SOCIAL_STREAM读取用户社交信息流 52.android.permission.READ_SMS

    1.8K30

    从TargetApi22升级到TargetApi26注意事项

    最近谷歌爸爸要求在8月份,在googleplay上架app必须升级到TargetApi26以上,作为常年使用TargetApi22,不得不去研究一下升级为TargetApi26影响,主要如下:...1.运行时权限 如果你声明在清单文件权限,这对用户隐私或设备操作构成很大风险,系统会自动将这些权限授予您应用程序。...,但仅当试图使用权限应用程序由与定义权限应用程序相同证书签名时。...时开始,下面5种类型type将会被废弃,不能使用,但运行在低于api26版本手机上还是可以使用以下type,所以需要对api26悬浮窗进行兼容处理: TYPE_PHONE TYPE_PRIORITY_PHONE...(如状态栏、IME)之下 2)系统可以调整这种形式窗口位置、大小和可见性 3)运行在api26手机上,只要应用使用[TYPE_APPLICATION_OVERLAY] 来弹出悬浮窗,系统会自动发送一条通知

    84810

    Adobe Flash Player木马惊现新变种

    Ginp较前两周发布“Flash Player”木马病毒相比除了具有木马病毒惯用远控获取用户联系人列表、短信列表等隐私信息特性外,还通过注册易访问性服务监控用户设备,自动授权应用敏感权限,加载网页覆盖特定应用程序页面...一旦用户授予请求可访问性服务特权,Ginp首先自动授予自己额外权限,以便能够执行某些敏感高权限操作,而不需要受害者任何进一步操作。...ENABLE_HIDDEN_SMS 设置恶意软件为默认短信应用程序 DISABLE_HIDDEN_SMS 移除恶意软件作为默认短信应用程序 ENABLE_CC_GRABBER 启用谷歌播放覆盖 DISABLE_CC_GRABBER...图2-4 请求安装界面 (2)自动授予高敏感权限:申请接收发送读取短信权限,当监测到系统弹框请求权限时,遍历节点,通过perforAcmtion执行点击同意授权。 ?....**.51.107/api2/ping.php 主控 http://64.**.51.107/api2 加载覆盖网页 http://64.**.51.107/api2/sms.php 上传短信信息

    1.4K20

    论文笔记《On The insecurity of SMS One-Time Password Message against Local Attackers in Modern Mobile Dev

    One-Tap SMS verification:收到短信验证码后,会弹框提示app正在申请读取短信验证码,点击同意后自动将验证码填充到app中 Access by Requesting SMS...  通过申请短信读取权限来读取短信,具体由两类短信权限: READ_SMS: 能读取信箱中所有短信 RECEIVE_SMS: 仅能读取当前接收到新短信   这类权限被认为是高危权限,因此有着来自系统和应用商店双重限制...通过使用这些API,app可以无需申请其他任何短信相关API自动完成短信验证码填充过程。...用来查看(解决上面的条件6) 短信使用SMS Retriever机制自动被转发到目标app而不是手动输入(解决Weakness 1) 计算Hashcode最后截取38个base64字符串,以满足NIST...guidelines PPT   最后附上演讲时用ppt:SMS OTP

    1.2K40

    Android6.0权限大全和权限分类

    ,访问电话状态 读取短信内容 android.permission.READ_SMS读取短信内容 读取同步设置 android.permission.READ_SYNC_SETTINGS,读取同步设置...,允许程序重新启动设备 开机自动允许 android.permission.RECEIVE_BOOT_COMPLETED,允许程序开机自动运行 接收彩信 android.permission.RECEIVE_MMS...Google在线同步设置 二.权限分类 Google将权限分为两类,一类是Normal Permissions,这类权限一般涉及用户隐私,是不需要用户进行授权,比如手机震动、访问网络等;另一类是Dangerous...,访问电话状态 读取短信内容 android.permission.READ_SMS读取短信内容 读取同步设置 android.permission.READ_SYNC_SETTINGS,读取同步设置...Google在线同步设置 二.权限分类 Google将权限分为两类,一类是Normal Permissions,这类权限一般涉及用户隐私,是不需要用户进行授权,比如手机震动、访问网络等;另一类是Dangerous

    1.8K30

    Android各类权限意思祥解

    android.permission.ACCESS_FINE_LOCATION     允许一个程序访问精良位置(如GPS)  4. android.permission.ACCESS_LOCATION_EXTRA_COMMANDS     允许应用程序访问额外位置提供命令...android.permission.CHANGE_NETWORK_STATE     允许程序改变网络连接状态 22. android.permission.CHANGE_WIFI_STATE     允许程序改变Wi-Fi连接状态 23...    允许程序读取底层系统日志文件 57. android.permission.READ_OWNER_DATA     允许程序读取所有者数据 58. android.permission.READ_SMS...    允许程序写入API设置 89. android.permission.WRITE_CALENDAR     允许一个程序写入但不读取用户日历数据 90. android.permission.WRITE_CONTACTS...    允许一个程序写入但不读取所有者数据 93. android.permission.WRITE_SETTINGS     允许程序读取或写入系统设置 94. android.permission.WRITE_SMS

    1.5K90

    Android 6.0权限请求相关及权限分组方法

    Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请。...Android中危险权限可以归为以下几个分组: CALENDAR CAMERA CONTACTS LOCATION MICROPHONE PHONE SENSORS SMS STORAGE...想要不支持运行时权限机制很简单,只需要将targetSdkVersion设置低于23就可以了,意思是告诉系统,还没有完全在API 23(6.0)上完全搞定,不要给我启动新特性。...其实你不需要每个权限都去显式申请,举一个例子,如果你应用授权了读取联系人权限,那么你应用也是被赋予了写入联系人权限。...因为读取联系人和写入联系人这两个权限都属于联系人权限分组,所以一旦组内某个权限被允许,该组其他权限也是被允许

    98230

    从商用到开源:15个维度,全面剖析DB2与MySQL数据库差异

    对于多数应用程序,可以优先考虑把数据库系统隔离级别设为 ReadCommitted。它能够避免脏读取,而且具有较好并发性能。...在DB2 V9之前数据库版本中,创建数据库(创建数据库时如果指定表空间则会默认创建3个表空间)或表空间默认类型就是SMS表空间。...DMS自动存储表空间(Automatic Storage DMS) 自动存储表空间不是真正意义上独立类型表空间。它是DMS存储另外一种处理方法。...DMS需要很多维护操作,而自动存储器则是作为一种简化空间管理手段,能够自动进行表空间管理维护,它是DB2 V8.8.2中引入概念,目前取代SMS成为默认表空间类型。...,它在试图更改触发器所保护数据时自动执行。

    2.2K90

    Broadcasts详解「建议收藏」

    大家好,又见面了,是你们朋友全栈君。 Android系统和Android应用程序都可以发送和接收广播,类似于publish-subscribe设计模式。...应用程序也可以发送自定义广播,例如,通知其他应用程序他们关注事件(如数据下载完成)。 应用程序可以注册广播接收器。当广播被发送时,系统自动将广播传递到已注册接收该广播应用程序。...一般来说,广播可以作为应用程序间、正常用户流之外消息传递系统。 系统广播 当各种系统事件发生时,系统会自动发送广播,例如系统进入/退出飞行模式。系统广播被发送给所有注册该广播接收器应用程序。...如果应用程序target为API 26及以上,则不能使用静态注册方式注册大多数隐式广播(不具体针对某个应用程序广播)。...这些信息可以被注册接收广播任何应用程序读取。有三种方法可以控制谁可以接收你广播: a、 可以在发送广播时指定权限。

    81410

    Android系统服务

    虽然名为ActivityManager Service,但它管辖范围,不只是Activity,还有其他三大组件,和它们所在进程。也就是说用户应用程序生命管理,都是由他负责。...详见本人另外一篇博客来去电拦截 黑名单来电自动挂断 详见本人另外一篇博客AIDL与来去电自动挂断 ---- SmsManager(短信管理器) 官方API 建议使用 android.telephony.gsm.SmsManager...每一个基于SMS应用程序控制检测sentIntent。 如果sentIntent是空,调用者将检测所有未知应用程序,这将导致在检测时候发送较小数量SMS。...: //处理返回发送状态 String SENT_SMS_ACTION = "SENT_SMS_ACTION"; Intent sentIntent = new Intent(SENT_SMS_ACTION...setStreamMute()在API 23版本过期, 可以使用另一个方法adjustStreamVolume(int, int, int),然后第三个属性设置: ADJUST_MUTE 或 ADJUST_UNMUTE

    1.8K30

    从商用到开源:15个维度,全面剖析DB2与MySQL数据库差异

    对于多数应用程序,可以优先考虑把 数据库系统隔离级别设为 ReadCommitted。它能够避免脏读取,而且具有较好并发性能。...在DB2 V9之前数据库版本中,创建数据库(创建数据库时如果指定表空间则会默认创建3个表空间)或表空间默认类型就是SMS表空间。...DMS自动存储表空间(Automatic Storage DMS) 自动存储表空间不是真正意义上独立类型表空间。它是DMS存储另外一种处理方法。...DMS需要很多维护操作,而自动存储器则是作为一种简化空间管理手段,能够自动进行表空间管理维护,它是DB2 V8.8.2中引入概念,目前取代SMS成为默认表空间类型。...,它在试图更改触发器所保护数据时自动执行。

    3.4K70

    3.数据存储

    在内部文件读取    **内部存储(internal storeage)      ram:运行时期内存      (相当于电脑内存)      rom;存储内存     (相当于电脑硬盘)...还有缓存中一般是存放一些内存中一些直接读取数据。              ...MODE_PRIVATE仍然是默认操作模式,和直接传入 0 效果是相同,表示只有当前应用程序才可以对这个SharedPreferences文件进行读写。...Activity类中 getPreferences()方法 这个方法和 Context中 getSharedPreferences()方法很相似,不过它只接收一个操作模式参数,因为使用这个方法时会自动将当前活动类名作为...PreferenceManager类中 getDefaultSharedPreferences()方法 这是一个静态方法,它接收一个 Context参数,并自动使用当前应用程序包名作为前缀来命名 SharedPreferences

    94970

    特洛伊木马是什么,它能造成什么损害?

    2 内容速览 当马肚子在晚上打开时,为时已晚。希腊人最终成功地占领了长期被围困特洛伊城,结束了特洛伊战争。几千年后,特洛伊木马神话仍然存在,尽管今天具有讨人喜欢内涵。...因此,Droppers类似于下载器特洛伊木马,不同之处在于下载程序需要网络资源才能从网络中提取恶意软件。Dropper本身已经包含程序包中其他恶意组件。...例如,Faketoken将大量SMS消息发送到昂贵国际号码,并在系统中伪装成标准SMS应用程序。智能手机所有者必须为此支付费用。其他 SMS 特洛伊木马程序与昂贵高级 SMS 服务建立连接。...如果Emotet从地址簿中读取存储电子邮件地址并将其添加到其庞大数据库中,则私人用户仍会受到影响。...,但如果未检测到,可以传播到服务器,从而扩展到所有出站FTP传输 即时消息(IM):通过移动和桌面消息传递应用程序传输,通常作为外部链接,包括本机SMS应用程序,WhatsApp,Facebook Messenger

    48110

    重学SpringCloud系列四之分布式配置中心---上

    配置常见存储方式:配置文件、数据库等 配置对于应用程序是只读,程序通过读取配置来影响程序运行行为 配置是区分环境同一份程序部署到生产、测试、开发、演示环境下,需要做不同配置 传统应用程序配置分散...那么传统应用程序配置面临哪些问题?...二、分布式配置管理中心 比起“分布式配置中心”这个词,更喜欢集中配置管理中心叫做“统一配置管理中心”。“分布式”修饰应用程序,而“统一”才是修饰配置管理中心关键词。...第二类是业务运行所需数据,比如:新建用户时默认密码,重置用户时默认密码。这一类配置发生变更修改就是配置数据本身,它不去影响程序其他对象,产生其他连锁反应。...最重要原因:程序员提交代码行为不可控,不能因为配置代码变更了就认为这种变更是正确代表可以自动应用到环境中。 基于以上原因,都不如自己决定向哪里发送/actuator/refresh请求。

    74610
    领券