Android中系统设置参数改变监听(以时间同步为例)
16lz
2021-01-23
- packagecom.inanwong.main;
- importjava.text.SimpleDateFormat;
- importjava.util.Date;
- importandroid.app.Activity;
- importandroid.database.ContentObserver;
- importandroid.os.Bundle;
- importandroid.os.Handler;
- importandroid.provider.Settings;
- importandroid.util.Log;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.TextView;
- publicclassMainActivityextendsActivity{
- privatestaticfinalStringTAG="MainActivity";
- privatestaticfinalintON=1;
- privatestaticfinalintOFF=0;
- privateButtonmbtnGetStatus;
- privateButtonmbtnAutoTime;
- privateButtonmbtnAutoTimeListen;
- privateTextViewmtvInfo;
- /**
- *是否开启时间同步监听
- */
- privatebooleanisListening=false;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mtvInfo=(TextView)findViewById(R.id.multiAutoCompleteTextView1);
- mtvInfo.setText("");
- mbtnGetStatus=(Button)findViewById(R.id.button1);
- mbtnGetStatus.setOnClickListener(newOnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- intnAutoTimeStatus=Settings.System.getInt(
- getContentResolver(),Settings.System.AUTO_TIME,OFF);
- OutPrintLog("当前时间同步状态:"+nAutoTimeStatus);
- }
- });
- mbtnAutoTime=(Button)findViewById(R.id.button2);
- mbtnAutoTime.setOnClickListener(newOnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- intnAutoTimeStatus=Settings.System.getInt(
- getContentResolver(),Settings.System.AUTO_TIME,OFF);
- Settings.System.putInt(getContentResolver(),
- Settings.System.AUTO_TIME,nAutoTimeStatus==OFF?ON
- :OFF);
- Refresh();
- }
- });
- mbtnAutoTimeListen=(Button)findViewById(R.id.button3);
- mbtnAutoTimeListen.setOnClickListener(newOnClickListener(){
- privateContentObservermAutoTimeObserver=newContentObserver(
- newHandler()){
- @Override
- publicvoidonChange(booleanselfChange){
- Log.i(TAG,"Autotimestatechanged");
- intnAutoTimeStatus=Settings.System.getInt(
- getContentResolver(),Settings.System.AUTO_TIME,
- OFF);
- OutPrintLog("当前时间同步状态:"+nAutoTimeStatus);
- }
- };
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- if(!isListening){
- getApplication()
- .getContentResolver()
- .registerContentObserver(
- Settings.System
- .getUriFor(Settings.System.AUTO_TIME),
- true,mAutoTimeObserver);
- }else{
- getApplicationContext().getContentResolver()
- .unregisterContentObserver(this.mAutoTimeObserver);
- }
- isListening=!isListening;
- Refresh();
- }
- });
- Refresh();
- }
- privatevoidRefresh(){
- intnAutoTimeStatus=Settings.System.getInt(getContentResolver(),
- Settings.System.AUTO_TIME,OFF);
- mbtnAutoTime
- .setText(nAutoTimeStatus==OFF?R.string.app_autotime_start
- :R.string.app_autotime_end);
- mbtnAutoTimeListen
- .setText(isListening?R.string.app_autotimelisten_end
- :R.string.app_autotimelisten_start);
- }
- privatevoidOutPrintLog(CharSequencetext){
- mtvInfo.setText((mtvInfo.getText()).toString()
- +newSimpleDateFormat("\nmm:ss").format(newDate())
- +text.toString());
- }
- }
更多相关文章
- android获取系统当前年月日时分秒的时间
- Android视频播放项目总结之 使用Android中的videoView自己定义,暂
- android 状态栏与标题栏一体化
- Android 沉浸式状态栏 支持4.4及以上。
- [ 转]Android 监控网络状态
- 【工具类】Android判断SD卡状态
- android监听SD卡状态
- Android 沉浸式状态栏 +DrawerLayout+Toolbar,适配4.4X及以上