- Settings.Global.putInt(getContentResolver(), "SwitchLaunch", 0);
- Settings.System.putInt(getContentResolver(), "SwitchLaunch", 0);
- Settings.Secure.putInt(getContentResolver(), "SwitchLaunch", 0);
- <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />-
- <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
- //设置值
- settings put global SwitchLaunch 1
-
- //读取值
- settings get global SwitchLaunch
registerContentObserver(Uri uri, boolean notifyForDescendants,ContentObserver observer) {} ,
3个参数
getContentResolver().unregisterContentObserver(mObserver);
- import android.annotation.SuppressLint;
- import android.database.ContentObserver;
- import android.net.Uri;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Looper;
- import android.os.Message;
- import android.provider.Settings;
- import android.util.Log;
-
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.appcompat.app.AppCompatActivity;
-
- public class MainActivity extends AppCompatActivity {
- private MyContentObserver mObserver;
-
- @SuppressLint("MissingInflatedId")
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- mObserver = new MyContentObserver(mHandler);
-
- Uri uri = Settings.Global.getUriFor("SwitchLaunch");//这里的key可以自定义,也可以监
- 听其他,例如:监听蓝牙开关 Settings.Global.BLUETOOTH_ON
- getContentResolver().registerContentObserver(uri, true, mObserver);
-
- }
-
-
- private static class MyContentObserver extends ContentObserver {
-
- /**
- * Creates a content observer.
- *
- * @param handler The handler to run {@link #onChange} on, or null if none.
- */
- public MyContentObserver(Handler handler) {
- super(handler);
- }
-
- @Override
- public void onChange(boolean selfChange, @Nullable Uri uri) {
- super.onChange(selfChange, uri);
- //命令行设置值的时候,这里会调用
- Log.d("AAAAA", "MyContentObserver onChange=" + selfChange + "uri=" + uri.getPath());
-
- }
- }
-
- private static Handler mHandler = new Handler(Looper.getMainLooper()) {
-
- @Override
- public void handleMessage(@NonNull Message msg) {
- super.handleMessage(msg);
- }
- };
-
-
-
- @Override
- protected void onStop() {
- super.onStop();
- if (null != mObserver) {
- getContentResolver().unregisterContentObserver(mObserver);
- mObserver = null;
- }
- }
-
-
- }