`

Android使用ContentObserver监听数据库变化 接受指定号码的短信,并且不让系统截取到通知用户

 
阅读更多

public class ScreenTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SmsContent content = new SmsContent(new Handler());
// 注册短信变化监听
this.getContentResolver().registerContentObserver(
Uri.parse("content://sms/"), true, content);

}

class SmsContent extends ContentObserver {
private Cursor cursor = null;

public SmsContent(Handler handler) {
super(handler);
}

/**
* @Description 当短信表发送改变时,调用该方法 需要两种权限 android.permission.READ_SMS读取短信
* android.permission.WRITE_SMS写短信
* @Author Snake
* @Date 2010-1-12
*/
@Override
public void onChange(boolean selfChange) {
// TODO Auto-generated method stub
super.onChange(selfChange);
// 读取收件箱中指定号码的短信
cursor = managedQuery(Uri.parse("content://sms/inbox"),
new String[] { "_id", "address", "read" },
" address=? and read=?",
new String[] { "15555215556", "0" }, "date desc");

if (cursor != null) {
ContentValues values = new ContentValues();
values.put("read", "1"); // 修改短信为已读模式
cursor.moveToFirst();
while (cursor.isLast()) {
// 更新当前未读短信状态为已读
getContentResolver().update(
Uri.parse("content://sms/inbox"), values, " _id=?",
new String[] { "" + cursor.getInt(0) });
//getContentResolver().delete(Uri.parse("content://sms/inbox"), " _id=?", new String[] { "" + cursor.getInt(0) });
cursor.moveToNext();
}
}
}
}

}

分享到:
评论

相关推荐

    自定义ContentObserver监听数据库数据变化

    总结来说,自定义`ContentObserver`监听数据库数据变化是一种常见的Android编程实践,它使得应用能及时响应数据库的动态变化,从而提高用户体验。正确地创建、注册和注销`ContentObserver`,以及在`onChange()`方法...

    Android 使用ContentObserver监听数据库内容是否更改

    - 在提供的代码示例中,`SMSContentObserver`是一个自定义的ContentObserver,用于监听短信数据库的变化。它在构造函数中接收一个Handler,这通常用于在主线程中更新UI。 - 当`onChange()`方法被调用时,它会查询...

    Android数据库内容变化的监听

    Android 系统中有多种方式可以监听数据库中的内容变化,例如使用 CursorAdapter 对象,这些对象可以自动注册到 Uri 上,并在 Uri 的内容发生变化时自动刷新。 Android 数据库内容变化的监听机制是 Android 系统中...

    android 监听短信数据库

    在Android开发中,监听短信数据库的变化是一项常见的需求,尤其是在实现如短信自动回复、短信通知等功能时。通过监听短信数据库,开发者可以实时获取到用户手机上接收到的新短信或已有的短信变化,从而进行相应的...

    Android中内容观察者的使用---- ContentObserver类详解

    在Android开发中,ContentObserver是系统提供的一种机制,用于监听并响应系统中ContentResolver的特定内容更改。这个类是Android框架的重要组成部分,特别是在处理数据变化和实时同步的应用场景下。本文将深入探讨...

    通过ContentProvider监听数据库中数据变化

    通过ContentProvider(内容提供者)将app中数据库对外开放(当然也可以对app本身开发);然后对数据库的增删改查就通过...然后用ContentObserver(内容观察者)来监听数据是否有变化。当有变化则就调用onChange方法了!

    使用ContentObserver监视未接电话,未读短信

    ContentObserver 是 Android 系统提供的一种机制,用于监听数据内容的变化。它与 BroadcastReceiver 类似,但主要用于观察 ContentProvider 中的数据变动。在 Android 中,ContentProvider 是一个管理应用程序间数据...

    Android实现静态广播监听器的方法

    当数据库中的数据发生变化时,`ContentObserver`会通知我们。我们可以使用`Handler`来更新UI,将最新的广播记录显示在`TextView`上,如下所示: ```java private class ActionDBObserver extends ContentObserver {...

    两个apk之间广播互相通信及ContentProvider监听数据库的变换

    4. 使用ContentObserver:在需要监听数据库变化的地方,创建一个ContentObserver实例,然后通过ContentResolver的registerContentObserver()方法注册。在ContentObserver的onChange()方法中处理数据变化。 现在,...

    android截图事件监听的原理与实现

    `ContentObserver`可以观察到系统媒体数据库的变化,当新的截图被添加到媒体库时,我们同样可以得到通知。同时,我们需要在判断是否为同一截图时,仅依赖文件名而不是完整的路径,因为某些系统可能会对截图进行移动...

    android监听手机app启动

    - **监听**:在Android中,监听通常涉及注册广播接收器、服务或者ContentObserver,用于监听特定事件的发生,如系统广播、数据库变化等。 - **打开app**:在Android中,应用的启动和关闭都是通过Activity的生命周期...

    Android短信例子大全

    总结来说,“Android短信例子大全”涵盖了Android应用处理短信的核心技术,包括使用`SmsManager`发送短信,注册BroadcastReceiver接收短信并展示通知,以及利用ContentObserver监听短信库的实时变化。这些知识对于...

    Android 中使用ContentObserver模式获取短信用正则自动填充验证码

    主要介绍了Android 中使用ContentObserver模式获取短信用正则自动填充验证码,首先使用了ContentObserver监听短信,然后从短信中用正则的分组去拿到验证码,具体实现代码大家参考下本

    Android自学笔记-13-ContentObserver内容观察者

    在Android开发中,ContentObserver(内容观察者)是一种非常重要的组件,它允许应用程序监听系统或应用内部数据的变化。本自学笔记将深入探讨ContentObserver的工作原理、使用场景以及如何实现它。 ContentObserver...

    详解Android开发中ContentObserver类的使用

    正确使用ContentObserver,可以让应用更加灵活地响应外部数据变化,为用户提供更加丰富的交互体验。开发人员在使用时需要关注的是如何合理地注册和取消注册观察者,以及如何在onChange()方法中实现合理的逻辑处理。

    android中DownloadManager实现版本更新,监听下载进度实例

    通过上述步骤,可以实现一个Android应用的自动更新功能,并且能够实时监听下载进度,向用户反馈当前的下载状态。这个过程对于开发者来说既高效又方便,使得更新应用这一功能变得可靠而用户友好。

    java android 文件监听器

    相比之下,ContentObserver是一种更高效且推荐的方法,它通常用于监听数据库或共享首选项的变化。虽然ContentObserver不直接支持文件系统,但我们可以借助IntentService和BroadcastReceiver来扩展其功能。创建一个...

    Android中监听短信的两种方法

    在Android系统中,监听短信通常有两种方法:通过注册BroadcastReceiver监听SMS_RECEIVED_ACTION广播和使用ContentObserver监控短信数据库。这两种方法各有优缺点,下面将详细解释它们的工作原理和实现方式。 1. ...

    sms.zip_Android 数据库_android_android sms_sms

    在Android操作系统中,短信数据的存储通常依赖于SQLite数据库,这是一种轻量级、关系型的数据库管理系统,适用于移动设备上本地数据存储。标题中的“sms.zip_Android 数据库_android_android sms_sms”暗示了这是一...

Global site tag (gtag.js) - Google Analytics