在android 开发中有的时候我们会用到contentobserver,contentobserver被称为内容观察者,它不仅能监听到数据库中数据的变化,也能对系统中的某些数据进行监听,像屏幕的亮度,系统的声音等.本次主要说的对系统的亮度进行监听.
先写一个类extends contentobserver ,重写onchange(boolean),在onchange中进行监听,当亮度变化时候进行处理,
在这里当亮度变化用一handler来显示Toast.
public class BrightnessValue extends ContentObserver{
private Handler handler;
public BrightnessValue(Handler handler) {
super(handler);
// TODO Auto-generated constructor stub
this.handler = handler;
}
@Override
public void onChange(boolean selfChange) {
// TODO Auto-generated method stub
super.onChange(selfChange);
try {
int BrightnessValue = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
Log.i(">>>>>>>>>>>>>>>Hook brightness value : ",String.valueOf(BrightnessValue));
handler.sendEmptyMessage(1);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
Toast.makeText(this, "The brightness value has changed", 1000).show();
}
};
當然,只是做一個這樣的監聽是不行的,還需要對它進行註冊,只有註冊才能進行監聽.
public void registerOberver(){
Uri uri = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS);
getContentResolver().registerContentObserver(uri, false, BrightnessObserver);
}
最後,在onCreat方法中加兩條就好了.
BrightnessObserver = new BrightnessValue(mHandler);
registerOberver();
分享到:
相关推荐
`ContentObserver` 是Android提供的一种机制,允许应用程序监听系统内容提供者的变更,包括数据库记录的增删改等操作。在这个场景中,我们将详细讲解如何自定义`ContentObserver`来监听数据库数据的变化。 首先,...
在Android开发中,ContentObserver类是一个非常重要的工具,它提供了一种机制来观察数据的变化。ContentObserver是基于观察者设计模式,可以监听特定URI(统一资源标识符)引起的数据库的变化。当被观察的URI对应的...
在Android开发中,ContentObserver是系统提供的一种机制,用于监听并响应系统中ContentResolver的特定内容更改。这个类是Android框架的重要组成部分,特别是在处理数据变化和实时同步的应用场景下。本文将深入探讨...
在Android开发中,ContentObserver(内容观察者)是一种非常重要的组件,它允许应用程序监听系统或应用内部数据的变化。本自学笔记将深入探讨ContentObserver的工作原理、使用场景以及如何实现它。 ContentObserver...
在Android开发中,ContentObserver是用于监听ContentProvider中数据变化的重要工具。ContentObserver允许开发者注册对特定Uri的兴趣,一旦这个Uri对应的数据库有任何更新,ContentObserver的`onChange()`方法就会被...
总之,监听Android用户的截图行为需要通过监控截图目录和媒体库的变化,结合`FileObserver`和`ContentObserver`来实现。虽然这种方法并不直接,但通过巧妙地处理各种异常情况,可以实现较为可靠的截图事件监听。在...
总结来说,监听Android短信验证码需要创建ContentObserver,注意onChange的多次调用,并处理权限问题。同时,验证码的提取依赖于准确地解析短信内容,这可能需要根据实际业务需求调整。在面对不同Android系统版本和...
ContentObserver内容观察者是Android系统中用于监听ContentProvider数据变化的一种机制。当ContentProvider的数据发生变化时,ContentObserver能够及时通知应用程序,以便应用可以根据新的数据状态做出相应的反应。...
在Android开发中,有时我们需要实现自动获取短信验证码的功能,以便用户在输入验证码时能自动填充,提高用户体验。本文将详细讲解如何使用ContentObserver来实现这一功能。ContentObserver是一种观察数据内容变化的...
在Android开发中,ContentProvider和ContentObserver是两个非常重要的组件,它们主要负责数据的存储和监控。本篇文章将深入探讨这两个组件以及如何结合使用来实现数据的共享与实时更新。 首先,ContentProvider是...
ContentObserver 是 Android 系统提供的一种机制,用于监听数据内容的变化。它与 BroadcastReceiver 类似,但主要用于观察 ContentProvider 中的数据变动。在 Android 中,ContentProvider 是一个管理应用程序间数据...
主要介绍了Android 中使用ContentObserver模式获取短信用正则自动填充验证码,首先使用了ContentObserver监听短信,然后从短信中用正则的分组去拿到验证码,具体实现代码大家参考下本
Android 数据库内容变化的监听 Android 数据库内容变化的监听是 Android 系统中一种重要的机制,用于监听数据库中的内容变化。这种机制基于 Uri 的内容监测,通过 ContentResolver 类提供了三个方法来实现监听功能...
为了监听下载进度,Android引入了ContentObserver机制。ContentObserver是一个用于观察数据变化的类,当ContentProvider中的数据发生变化时,系统会自动调用其onChange方法。下载进度的监听实现步骤如下: 1. 创建...
总结起来,观察者模式在Android开发中主要体现在BroadcastReceiver和ContentObserver的使用上,它们帮助开发者实现组件间的通信和数据同步,提高了代码的灵活性和可维护性。通过ContentProvider,Android提供了一个...
在Android系统中,Content Provider是四大应用程序组件之一,它的主要职责是实现应用程序间的数据共享。Content Provider基于URI机制,使得不同应用能够访问和修改存储在Content Provider中的数据。当数据发生更新时...