当前位置:   article > 正文

Android 通过接收广播int值来控制GPS开关

Android 通过接收广播int值来控制GPS开关

/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

//*/add gps control
import android.location.LocationManager;
//*/

  //*/add gps control
    int currentMode;
    //*/

     IntentFilter filter = new IntentFilter();
        filter.addAction(UiModeManager.ACTION_ENTER_CAR_MODE);
        filter.addAction(UiModeManager.ACTION_EXIT_CAR_MODE);
        filter.addAction(UiModeManager.ACTION_ENTER_DESK_MODE);
        filter.addAction(UiModeManager.ACTION_EXIT_DESK_MODE);
        filter.addAction(Intent.ACTION_DOCK_EVENT);
        filter.addAction("sys.gps.switch");//*/add gps
        Intent intent = context.registerReceiver(mDockReceiver, filter);

  BroadcastReceiver mDockReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (Intent.ACTION_DOCK_EVENT.equals(intent.getAction())) {
                mDockMode = intent.getIntExtra(Intent.EXTRA_DOCK_STATE,
                        Intent.EXTRA_DOCK_STATE_UNDOCKED);
            } else {
                try {
                    IUiModeManager uiModeService = IUiModeManager.Stub.asInterface(
                            ServiceManager.getService(Context.UI_MODE_SERVICE));
                    mUiMode = uiModeService.getCurrentModeType();
                } catch (RemoteException e) {
                }
            }
            updateRotation(true);
            synchronized (mLock) {
                updateOrientationListenerLp();
            }
            //*/add gps
            if (intent.getAction().equals("sys.gps.switch")) {
                int mydata =  intent.getIntExtra("gpsSwitch", 0);//1 open 2 close
                   currentMode = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.LOCATION_MODE,Settings.Secure.LOCATION_MODE_OFF);
                   if (mydata == 1) {

                        Intent intent2 = new Intent("com.android.settings.location.MODE_CHANGING");
                        intent2.putExtra("CURRENT_MODE", currentMode);
                        intent2.putExtra("NEW_MODE",

Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
                        mContext.sendBroadcast(intent2, android.Manifest.permission.WRITE_SECURE_SETTINGS);
             Settings.Secure.setLocationProviderEnabled(mContext.getContentResolver(), LocationManager.GPS_PROVIDER,true);            Settings.Secure.putInt(mContext.getContentResolver(),Settings.Secure.LOCATION_MODE,Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
                        Log.e("GPS","=====LOCATION_MODE_ON=====");
                   } else {
                        Intent intent2 = new Intent("android.location.MODE_CHANGED");
                        intent2.putExtra("CURRENT_MODE", Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
                        intent2.putExtra("NEW_MODE", Settings.Secure.LOCATION_MODE_OFF);
                        mContext.sendBroadcast(intent2, android.Manifest.permission.WRITE_SECURE_SETTINGS);
                        Settings.Secure.setLocationProviderEnabled(mContext.getContentResolver(), LocationManager.GPS_PROVIDER,false);
                        Settings.System.putInt(mContext.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF);
                        Log.e("GPS","=====LOCATION_MODE_OFF=====");
                   }

            }
            //*/

        }
    };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/889996
推荐阅读
相关标签
  

闽ICP备14008679号