zoukankan      html  css  js  c++  java
  • 对于android拦截短信的一些疑问

    最近折腾android4.4短信拦截的问题,要求在app上收到短信的时候弹出提示,并显示的功能。

    然后找到了使用broadcastreceiver和contentprovider两种方法,那么问题来了:

    当我用contentprovider和broadcast同时去处理的时候发现:如果使用contentprovider对短信进行处理(标记成已读或者删除),那么在broadcastreceiver中就收不到消息了(android4.4以上版本)。

    但是如果我不做处理的时候,看log日志,明明是broadcastreceiver先执行的。

    由于abortbroadcast在android4.4以上版本的短信功能中不可用,我在android4.4以下版本测试在broadcastreceiver中使用abortbroadcast,结果contentprovider就收不到了。

    这点是很疑惑的。

    另外我还用到了vivo x3l的手机,这个手机默认是自带权限管理软件的,而且在这个手机上使用短信的broadcastreceiver的时候有个奇葩的地方,就是他虽然是4.3的系统,我也开启了读短信的权限,我去拦截不到broadcast,后来我使用contentprovider操作读写短信的时候允许了读写和删除短信以及收发短信的权限,结果就可以收到这个broadcast了,可以简单地认为这个手机上你的app必须获取到短信的所有权限你才可以收到短信的broadcast,而小米和华为手机上不需要,真丫丫的蛋疼啊。

  • 相关阅读:
    js+canvas画随机4位验证码
    linux 下 查看 nginx 日志中访问前10 的 ip
    mysql greatest函数
    php 如何获取 post 传递的raw 数据
    php 监控文件变化 并上传到服务器
    php 如何统计本周 本月
    Yii2.0 GridView 的强大功能
    git 导出新修改的文件
    ubuntu16.04 下安装phpMyAdmin
    如何在ubuntu16.04 上搭建 phpstorm + xdebug 调试
  • 原文地址:https://www.cnblogs.com/dongweiq/p/4866299.html
Copyright © 2011-2022 走看看