Android(安卓)GPS状态改变与监听
16lz
2022-03-19
/** * 获取GPS当前状态 * @param context * @return */ private boolean getGPSState(Context context){ LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); boolean on = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); return on; } /** * 注册监听广播 * @param context * @throws Exception */ public void ready(Context context)throws Exception{ IntentFilter filter = new IntentFilter(); filter.addAction(LocationManager.PROVIDERS_CHANGED_ACTION); context.registerReceiver(new GpsStatusReceiver(), filter); } boolean currentGPSState = false; /** * 监听GPS 状态变化广播 */ private class GpsStatusReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(LocationManager.PROVIDERS_CHANGED_ACTION)){ currentGPSState = getGPSState(context); } } } /** * 改变GPS状态 * @param context * @throws Exception */ public void changeGPSState(Context context)throws Exception { boolean before = getGPSState(context); ContentResolver resolver = context.getContentResolver(); if (before){ Settings.Secure.putInt(resolver,Settings.Secure.LOCATION_MODE,Settings.Secure.LOCATION_MODE_OFF); }else { Settings.Secure.putInt(resolver,Settings.Secure.LOCATION_MODE,Settings.Secure.LOCATION_MODE_HIGH_ACCURACY); } currentGPSState = getGPSState(context); }
更多相关文章
- android日期控件显示
- android 录音 播放
- android wifi 设置 控制开关
- Android监听键盘上的确定键等
- Android(安卓)读取SIM卡参数
- Android如何监听输入框的出现和隐藏
- android 可编辑的下拉框 Demo
- protected-broadcast 规范使用(ERROR: Sending non-protected br
- Android(安卓)- 获取控件(包括状态栏与标题栏)宽高