package cn.com.uangel.mycontentobserver;
import android.content.Context;
import android.database.ContentObserver;
import android.os.Handler;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.util.Log;
//用来观察system表里飞行模式所在行是否发生变化 , “行”内容观察者
public class AirplaneContentObserver extends ContentObserver {
private static String TAG = "AirplaneContentObserver" ;
private static int MSG_AIRPLANE = 1 ;
private Context mContext;
private Handler mHandler ; //此Handler用来更新UI线程
public AirplaneContentObserver(Context context, Handler handler) {
super(handler);
mContext = context;
mHandler = handler ;
}
/**
* 当所监听的Uri发生改变时,就会回调此方法
*
* @param selfChange 此值意义不大 一般情况下该回调值false
*/
@Override
public void onChange(boolean selfChange) {
Log.i(TAG, "-------------the airplane mode has changed-------------");
// 系统是否处于飞行模式下
try {
int isAirplaneOpen = Settings.System.getInt(mContext.getContentResolver(), Settings.System.AIRPLANE_MODE_ON);
Log.i(TAG, " isAirplaneOpen -----> " +isAirplaneOpen) ;
mHandler.obtainMessage(MSG_AIRPLANE,isAirplaneOpen).sendToTarget() ;
}
catch (SettingNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}