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);
            }
        }
  • 相关阅读:
    属性的简单了解
    深入方法(29)- 传址参数不能赋予常量
    深入方法(27)- 递归函数: 简单示例
    MySQL 中文字符集排序
    Yii2 Apache + Nginx 路由重写
    DQL、DML、DDL、DCL的概念与区别
    php获取指定日期的前一天,前一月,前一年日期
    PHP 获取两个时间之间的月份
    PHP 调试工具Xdebug安装配置
    Nginx 反向代理、负载均衡
  • 原文地址:https://www.cnblogs.com/IT-lss/p/8350981.html
Copyright © 2011-2022 走看看