adb 获取settings数据库中的值
使用Settings 数据库
package com.ybf.utilit;
import android.R;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.provider.Settings;
import android.database.ContentObserver;
import android.os.Handler;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv_time;
Broadcast broadcast;
ChangeContentObserver mChangeContentObserver = null;
int i = 0;
/**
* 注意:
* 如果第三方应用是写不到Setting 数据库的,必须需要系统权限
* AndroidMainfest.xml需添加
* android:sharedUserId="android.uid.system"
*
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_item);
tv_time = (TextView) findViewById(R.id.text1);
broadcast = new Broadcast();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.setting");
intentFilter.addAction("com.com");
registerReceiver(broadcast, intentFilter);
mChangeContentObserver = new ChangeContentObserver();
getContentResolver().registerContentObserver(Settings.Global.getUriFor("com.ybf"), true, mChangeContentObserver);
}
class Broadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.setting")) {
if (i % 2 == 0) {
setdata(context, 0);
Log.e("TAG", "[onrece]set>=0");
i++;
} else {
setdata(context, 1);
Log.e("TAG", "[onrece]set>=1");
i++;
}
} else if (intent.getAction().equals("com.com")) {
Log.e("TAG", "[onrece]>getRecorderRear>" + getdata(context));
}
}
}
class ChangeContentObserver extends ContentObserver {
public ChangeContentObserver (Handler handler) {
super(handler);
}
public ChangeContentObserver () {
super(new Handler());
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.d("TAG", "ChangeContentObserver --> onChange(" + selfChange + ") ");
}
}
public static void setdata(Context cxt, int flag) {
try {
Settings.Global.putInt(cxt.getContentResolver(), "com.ybf", flag);
} catch (Exception e) {
if (e != null) {
Log.i("TAG", "setRecorderRear(Context," + flag + ")> " + e.getMessage());
}
}
}
public static int getdata(Context cxt) {
try {
return Settings.Global.getInt(cxt.getContentResolver(), "com.ybf", -1);
} catch (Exception e) {
if (e != null) {
Log.i("TAG", "getRecorderRear(Context)> " + e.getMessage());
}
}
return 0;
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(broadcast);
getContentResolver().unregisterContentObserver(mChangeContentObserver);
}
}