`

通过gps,wifi,基站定位获取当前位置

 
阅读更多
private Location getCurrentLocationGPS() {
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_LOW);
        String locationProvider = locationManager.getBestProvider(criteria,
                true);

        Location location = locationManager
                .getLastKnownLocation(locationProvider);

        return location;
    }

    // 根据wifi获取当前位置
    private Location getCurrentLocationWifi(Context context) {
        Location location=null;
        LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
        try
        {
            WifiManager wifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
            if(wifiManager.isWifiEnabled())
            {
             location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
            }
        }
        catch(Exception e)
        {
        }
       
       
       
        return location;
    }

    // 根据基站获取当前的位置
    private Location getCurrentLocationAGPS() {
        Location location = null;

        if (telephonyManager.getCellLocation() == null) {

        }
        GsmCellLocation gcl = (GsmCellLocation) telephonyManager
                .getCellLocation();

        int cid = gcl.getCid();

        int lac = gcl.getLac();

        int mcc = Integer.valueOf(telephonyManager.getNetworkOperator()
                .substring(0,

                3));

        int mnc = Integer.valueOf(telephonyManager.getNetworkOperator()
                .substring(3,

                5));

        try {

            // 组装JSON查询字符串

            JSONObject holder = new JSONObject();

            holder.put("version", "1.1.0");

            holder.put("host", "maps.google.com");

            // holder.put("address_language", "zh_CN");

            holder.put("request_address", true);

            JSONArray array = new JSONArray();

            JSONObject data = new JSONObject();
            data.put("cell_id", cid); // 25070
            data.put("location_area_code", lac);// 4474
            data.put("mobile_country_code", mcc);// 460

            data.put("mobile_network_code", mnc);// 0
            array.put(data);

            holder.put("cell_towers", array);

            // 创建连接,发送请求并接受回应

            DefaultHttpClient client = new DefaultHttpClient();
            HttpPost post = new HttpPost("http://www.google.com/loc/json");

            StringEntity se = new StringEntity(holder.toString());

            post.setEntity(se);

            HttpResponse resp = client.execute(post);

            HttpEntity entity = resp.getEntity();

            BufferedReader br = new BufferedReader(

            new InputStreamReader(entity.getContent()));

            StringBuffer resultStr = new StringBuffer();

            String readLine = null;

            while ((readLine = br.readLine()) != null) {

                resultStr.append(readLine);

            }

            JSONObject jsonResult = new JSONObject(resultStr.toString());
            JSONObject jsonLocation = jsonResult.getJSONObject("location");
            double jsonLat = jsonLocation.getDouble("latitude");
            double jsonLon = jsonLocation.getDouble("longitude");

            location = new Location("AGPS");
            location.setLatitude(jsonLat);
            location.setLongitude(jsonLon);

        } catch (Exception e) {

            // TODO: handle exception

        }

        return location;
    }
分享到:
评论

相关推荐

    androidGPS及WIFI基站定位坐标源码.zip

    在Android系统中,GPS(全球定位系统)和WIFI基站定位是两种常见的定位技术,用于获取设备的地理位置信息。这份“androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了一些实现这两种定位方式的源代码,对于学习...

    android gps wifi 基站 定位齐全。源码

    本源码包专注于三种主要的定位技术:GPS(全球定位系统)、WiFi和基站定位。 GPS(全球定位系统)是最常见的定位方式,它通过接收多个卫星信号来计算设备的位置。在Android中,我们可以使用LocationManager类来请求...

    GPS及WIFI基站定位坐标源码.zip

    本源码压缩包“GPS及WIFI基站定位坐标源码.zip”显然提供了实现这两种定位方式的代码示例,主要适用于Android平台。下面将详细探讨这两种定位方法以及可能包含的源码知识点。 1. GPS(全球定位系统)定位: GPS是...

    android定位(基站,GPS,wifi)齐全

    本文将详细介绍基于Android的三种定位方式:GPS(全球定位系统)、WiFi网络定位和基站定位,并结合提供的源码资源进行深入解析。 首先,GPS是全球卫星导航系统,用于提供精确的地理位置信息。`Android实现GPS定位....

    android google 定位程序 wifi基站GPS定位

    2. **Wi-Fi基站定位**:Wi-Fi定位是通过识别周围的Wi-Fi接入点并匹配已知的Wi-Fi热点数据库来确定位置。这种方法在室内特别有用,因为GPS信号可能较弱或无法接收。开发者可以调用`FusedLocationProviderClient`的`...

    Android的基站、WIFI、GPS定位集合【源码】.zip

    1. 基站定位:基站定位依赖于移动通信网络,通过测量设备与多个基站之间的信号强度和时间差,估算设备的位置。在Android中,基站定位主要由`TelephonyManager`类提供,通过调用`getNeighboringCellInfo()`方法获取...

    Android应用源码之androidGPS及WIFI基站定位坐标源码.zip

    这份"Android应用源码之androidGPS及WIFI基站定位坐标源码.zip"包含了实现这两种定位方式的源代码,对于理解和开发Android定位应用具有重要的参考价值。 1. GPS定位: GPS定位是通过接收来自至少四颗GPS卫星的信号...

    安卓Android源码——androidGPS及WIFI基站定位坐标源码.rar

    【标题】中的“安卓Android源码——androidGPS及WIFI基站定位坐标源码”表明了这是一个关于Android系统中GPS和Wi-Fi基站定位功能的源代码集合。在Android平台上,定位服务是应用程序能够获取用户当前位置的关键组件...

    Android高级应用源码-androidGPS及WIFI基站定位坐标源码.zip

    这份“Android高级应用源码-androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了实现这两种定位方式的源代码,对于深入理解和开发Android地理位置相关应用非常有价值。 首先,我们来了解一下GPS定位。GPS是通过...

    Android_GPS_WIFI_网络定位

    在MapABCAndroidApiDemos这个项目中,通常会包含一系列关于地图API的示例代码,可能包括使用GPS、WIFI和网络定位功能来显示用户当前位置、路径规划、地理编码(将地址转换为坐标)和反地理编码(将坐标转换为地址)...

    android_gps_wifi_基站_定位集合文档

    在Android平台上,GPS(全球定位系统)和其他辅助定位技术如WiFi和基站定位是实现设备位置服务的关键组件。本文档集合了这些技术的整合方法,帮助开发者实现更精确和高效的定位功能。 首先,我们来深入理解GPS定位...

    安卓GPS地图导航定位指南相关-基于高德地图的gpswifi基站的智能选择定位.zip

    基站定位则是通过连接到移动网络的基站来确定设备的位置。每个基站都有一个独特的标识符,手机会自动连接到信号最强的基站。根据手机与多个基站的距离和信号强度,可以三角定位设备。 在“JavaApk源码说明.txt”中...

    android 基站定位 返回定位的城市

    这是一个由百度提供的服务,它为开发者提供了丰富的API接口,用于获取用户的位置信息,包括GPS定位、基站定位以及WiFi定位等。使用该SDK,开发者可以在Android应用中轻松集成定位功能,获取到用户当前的经纬度坐标,...

    android系统的wifi和基站地理信息定位完整代码实现

    4. **获取WiFi信息**:Android提供了`WifiManager`类,通过`getScanResults()`方法可以获取到当前范围内的所有WiFi接入点信息,这些信息包括SSID、BSSID(MAC地址)和信号强度等。 5. **基站信息**:基站信息通常由...

    android 更改 Wifi 或GPS状态

    可能的值有:“network”(仅基站定位),“gps”(仅 GPS 定位),“network,gps”(基站和 GPS 都开放),“”(关闭定位)。 四、更改 GPS 状态 在 Android 中,更改 GPS 状态可以通过 Settings.System 来实现...

    Android 基站定位

    在提供的"GoogleMapDemo"项目中,可能包含了一个示例应用,演示了如何在Android地图上显示基于基站定位的当前位置。这个项目可能使用了Google Maps Android API,通过集成Google Play服务来获取定位信息,并在地图上...

    百度GPS定位实现

    1. **百度GPS定位服务**:百度提供了自家的定位SDK,即Location SDK,它支持多种定位方式,包括GPS、WiFi、基站以及AGPS(Assisted GPS)。Location SDK能够根据设备的环境自动选择最佳的定位方式,从而提高定位速度...

    Android获取当前位置的经纬度数据

    现在有这么一个需求:开启一个Service服务,获取当前...Android手机获取当前位置的方式:GPS定位,WIFI定位,基站定位,当前Demo使用GPS卫星定位,在LocationTool中返回Location、LocationManager两者对象,通过Loca

Global site tag (gtag.js) - Google Analytics