zoukankan      html  css  js  c++  java
  • Android 定位模板

    private void getLocationCity(){
    
            String serviceName = Context.LOCATION_SERVICE;
            locationManager = (LocationManager) getSystemService(serviceName);
    //        String provider = LocationManager.GPS_PROVIDER;
            String provider = LocationManager.NETWORK_PROVIDER;
    
            Criteria criteria = new Criteria();
            criteria.setAccuracy(Criteria.ACCURACY_FINE);
            criteria.setAltitudeRequired(false);
            criteria.setBearingRequired(false);
            criteria.setCostAllowed(true);
            criteria.setPowerRequirement(Criteria.POWER_LOW);
    //        String provider = locationManager.getBestProvider(criteria, true);
         locationManager.requestLocationUpdates(provider, 2000, 10,
                    locationListener);
            Location location = locationManager.getLastKnownLocation(provider);
            getAddress(location);   
        }
    
        private final LocationListener locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {
                getAddress(location);
            }
            public void onProviderDisabled(String provider){
                getAddress(null);
            }
            public void onProviderEnabled(String provider){ }
            public void onStatusChanged(String provider, int status,
                                        Bundle extras){ }
        };
    
        private void getAddress(Location location) {
    
            if (location != null) {
                new MyAsyncCity().execute(location);
            } else {
                Log.d(TAG, "updateWithNewLocation: ");
            }
        }
    
        private class MyAsyncCity extends AsyncTask<Location, Void, String> {
    
            @Override
            protected String doInBackground(Location... params) {
                List<Address> addList = null;
                Geocoder ge = new Geocoder(WelcomeActivity.this);
                try {
                    addList = ge.getFromLocation(params[0].getLatitude(), params[0].getLongitude(), 1);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return addList.get(0).getLocality();
            }
    
            @Override
            protected void onPostExecute(String city) {
                super.onPostExecute(city);
                spUtil.setLocationCity(city);
            }
        }
  • 相关阅读:
    今天不谈技术,谈感情~
    外派金融公司
    OAuth2-简介
    Zookeeper实战-分布式锁
    Zookeeper-基础
    Minio-对象存储
    Redis实战-BloomFilter
    Redis实战-详细配置-优雅的使用Redis注解/RedisTemplate
    Redis-基础
    SpringBoot-表单验证-统一异常处理-自定义验证信息源
  • 原文地址:https://www.cnblogs.com/IT-lss/p/8350981.html
Copyright © 2011-2022 走看看