对于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,而小米和华为手机上不需要,真丫丫的蛋疼啊。

时间: 2024-11-06 18:39:09

对于android拦截短信的一些疑问的相关文章

android拦截短信并屏蔽系统的Notification

拦截短信有几个关键点: 1.android接收短信时是以广播的方式 2.程序只要在自己的Manifest.xml里加有"接收"SMS的权限 <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> 3.要写个广播接收类 public class smsreceiveandmask extends BroadcastReceiver { p

用Xposed框架拦截Android操作系统的短信接收

短信接收原理 关于Android操作系统短信的接收和发送流程的文章网上有一大堆,但是真正说得很清楚的不多,这篇blog写得不错.其实要想真正弄懂Android操作系统短信的流程,还是Linus的那句话: Read the fucking source code.呵呵 在Android操作系统中,大部分敏感信息的传递过程都是基于binder机制的,当然SMS也不例外.对于SMS的接收流程的描述从Framework层和Application层这两个层面进行介绍. Framework层 当短信到达Fr

Android之——短信的备份与还原

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47091281 目前,Android手机中的一些软件可以实现手机短信的备份与还原操作.这篇博文就是要向大家介绍如何实现Android短信的备份与还原操作.好了,相信大家对这些实用的功能还是比较感兴趣的,不多说了,我们直接进入主题吧. 一.原理 我的实现原理很简单,界面上放置几个TextView列表,其中两项为"短信的备份"和"短信的还原",点击&quo

Android获取短信验证码

Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性.无论是用户注册时的信息验证还是当用户发出找回密码请求时的短信验证,他们的工作原理大致上是一致的,因为项目的需要研究了一下关于这方面的知识,本篇我将带领大家一起实现这一当下流行的设计方案. 众所周知,短信验证需要服务器端生成一个验证码,然后发送到用户输入的手机上,这个过程需要服务器主动向客户发送验证短信,所以这是就需要一个移动或联通的发送

android 定时短信app之时间选择器(一)

DatePicker类图 主要方法 public void init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener) 类 TimePicker类图 setOnTimeChangedListener public void setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTime

Android开发短信备份小例子

主要是使用内容提供者ContentProvider #1.在activity_main.xml布局文件中添加写sdcard权限,并添加读短信的权限 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par

android发送短信例子

Android应用开发中我们常常需要发送手机短信.这对于android平台来说,是最简单不过的功能了,无需太多代码,也无需自定义代码,只需要调用android提供的消息管理类SmsManager就可以了. [源码下载]http://www.code4apk.com/android-code/202 核心就是使用SmsManager的sendTextMessage方法加上PendingIntent跳转. 核心代码如下: SmsManager sms=SmsManager.getDefault();

android发短信的代码

android发短信的代码 by 伍雪颖 Uri uri = Uri.parse("smsto:10086"); Intent intent = new Intent(Intent.ACTION_SENDTO,uri); intent.putExtra("sms_body","The SMS text"); startActivity(intent);

android 发送短信 如何做到一条一条的发送,只有在上一条发送成功之后才发送下一条短信

android发送短信截获上一条发送是否成功,然后再来发送下一条短信 1.问题:在项目中遇到如下要求:待发短信有N条,实现一条一条的发送并在上一条短信发送成功之后再来发送下一条. for(int i=0;i<3;i++){ sendSMS(10086, text1, i); } private void sendSMS(String toAddress, String body, Long id) { // ---sends an SMS message to another device---