在Android进行手机设置时,会出现GPS关闭的情况,这时应该弹出一个窗口提示用户开启GPS,然后开启后重启定位监听。

提示窗口:

 private void openGPS() {        new AlertDialog.Builder(MapActivity.this)                .setIcon(android.R.drawable.ic_dialog_info)                .setTitle(R.string.information)                .setMessage("没有开启定位")                .setNegativeButton(R.string.cancel,null)                .setPositiveButton(R.string.open, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialogInterface, int i) {                        Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);                        startActivityForResult(intent,887);                        dialogInterface.dismiss();                    }                })                .show();    }

开启监听:

private void startLocation() {        Log.e(Tag, "开始定位");        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);        Criteria criteria = new Criteria();        //ACCURACY_HIGH/ACCURACY_LOW精度选择        criteria.setAccuracy(Criteria.ACCURACY_FINE);        //高度        criteria.setAltitudeRequired(true);        //方位信息        criteria.setBearingRequired(true);        //是否允许付费        criteria.setCostAllowed(true);        //对电量的要求        criteria.setPowerRequirement(Criteria.POWER_LOW);        //速度        criteria.setSpeedRequired(true);        String locationProvider = locationManager.getBestProvider(criteria, true);        Log.e(Tag, locationProvider);        if (ActivityCompat.checkSelfPermission(MapActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MapActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(MapActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 0);        } else {            locationListener = new locateListener();            locationManager.requestLocationUpdates(locationProvider, 1000, 1, locationListener);            Log.e(Tag, "开始监听");        }    }


结果返回:

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {        switch(requestCode){            case 887:                //开启GPS,重新添加地理监听                startLocation();                break;            default:break;        }        super.onActivityResult(requestCode, resultCode, data);    }




更多相关文章

  1. android定位的实现
  2. Android(安卓)UI元素使用初步
  3. 【总结备用】Android监听网络状态实现(BroadcastReceiver + Serv
  4. Android(安卓)对多个EditText监听
  5. Android(安卓)Phone拨出电话流程
  6. android spinner自动弹出列表,设置title,TtextView不换行自动截取
  7. Android(java)学习笔记113:Android编写代码调用Vibrator震动功能,按
  8. Android ListView 事件监听 || 关于ListView选中时显示的效果。
  9. android监听Home键

随机推荐

  1. android中的tab小结
  2. Android(安卓)WindowManager 原理解析参
  3. android
  4. Android中画面的布局工具
  5. Android(安卓)将Activity转化为DialogAct
  6. android:inputType常用取值
  7. UI_Layout 屬性”@+id”、”@id”和”@an
  8. Android(安卓)selector(背景选择器) , sh
  9. 【Android】Android(安卓)开机广播的使用
  10. Android(安卓)5.1 open data flow 数据开