`
y150988451
  • 浏览: 197536 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

android GPS定位,定位城市称,经纬度

阅读更多
package com.test;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.Settings;
import android.widget.TextView;
import android.widget.Toast;

import java.io.IOException;
import java.util.List;

public class Test2 extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        openGPSSettings();
       
    }
    
    private void openGPSSettings() {
        LocationManager alm = (LocationManager) this
                .getSystemService(Context.LOCATION_SERVICE);
        if (alm
                .isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
            Toast.makeText(this, "GPS模块正常", Toast.LENGTH_SHORT)
                    .show();
            doWork();
            return;
        }

        Toast.makeText(this, "请开启GPS!", Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
        startActivityForResult(intent,0); //此为设置完成后返回到获取界面

    }
    
    private void doWork() {
        String msg = "";
        TextView textView = (TextView) findViewById(R.id.tv1);

        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        Criteria criteria = new Criteria();
        // 获得最好的定位效果
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(false);
        // 使用省电模式
        criteria.setPowerRequirement(Criteria.POWER_LOW);
        // 获得当前的位置提供者
        String provider = locationManager.getBestProvider(criteria, true);
        // 获得当前的位置
        Location location = locationManager.getLastKnownLocation(provider);
        
        
        Geocoder gc = new Geocoder(this); 
        List<Address> addresses = null;
        try {
            addresses = gc.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } if (addresses.size() > 0) { 
        msg += "AddressLine:" + addresses.get(0).getAddressLine(0)+ "\n"; 
        msg += "CountryName:" + addresses.get(0).getCountryName()+ "\n"; 
        msg += "Locality:" + addresses.get(0).getLocality() + "\n"; 
        msg += "FeatureName:" + addresses.get(0).getFeatureName(); 
        } 
        textView.setText(msg);
    }

}

 

Manifest 权限:

 

	<uses-permission android:name="android.permission.INTERNET" /> 
	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
	<uses-permission android:name="android.permission.ACCESS_FIND_LOCATION" />
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
 
分享到:
评论
5 楼 sarah_susan 2012-04-23  
我想说的是: 真机测试的时候,addresses = gc.getFromLocation(location.getLatitude(), location.getLongitude(), 1);   这句话执行的结果为null。真心头疼,不知道怎么办,求解。
4 楼 wangjunjunwangjunjun 2012-03-16  
写出的代码不能运行,为什么啊?
3 楼 AndMacLinuXp 2011-12-04  
liang86liang 写道
Criteria criteria = new Criteria();  
        // 获得最好的定位效果  
        criteria.setAccuracy(Criteria.ACCURACY_FINE);  
        criteria.setAltitudeRequired(false);  
        criteria.setBearingRequired(false);  
        criteria.setCostAllowed(false);  
        // 使用省电模式  
        criteria.setPowerRequirement(Criteria.POWER_LOW);  
        // 获得当前的位置提供者  
        String provider = locationManager.getBestProvider(criteria, true);

为什么我的provider为null呢????????????



有的手机 criteria.setAccuracy(Criteria.ACCURACY_FINE);对于这个设置是不行的,比如nexus s。你试试 criteria.setAccuracy(Criteria.ACCURACY_COARSE);
2 楼 jmshx8 2011-09-13  
这种方法在2.2以上的版本就显示不出地址了
1 楼 liang86liang 2011-08-23  
Criteria criteria = new Criteria();  
        // 获得最好的定位效果  
        criteria.setAccuracy(Criteria.ACCURACY_FINE);  
        criteria.setAltitudeRequired(false);  
        criteria.setBearingRequired(false);  
        criteria.setCostAllowed(false);  
        // 使用省电模式  
        criteria.setPowerRequirement(Criteria.POWER_LOW);  
        // 获得当前的位置提供者  
        String provider = locationManager.getBestProvider(criteria, true);

为什么我的provider为null呢????????????

相关推荐

    android基于Gps 定位和基站定位获取经纬度

    在Android中,我们可以使用`LocationManager`服务来请求GPS定位服务。首先,需要在AndroidManifest.xml文件中添加必要的权限: ```xml &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ...

    android获取GPS经纬度,并根据经纬度获取准确地址( 纯原生)

    其中,ACCESS_FINE_LOCATION用于获取更精确的GPS定位,而ACCESS_COARSE_LOCATION则可以获取基于网络的粗略位置。 接下来,创建一个工具类,用于获取GPS经纬度。我们可以创建一个名为`LocationUtil`的Java类,包含一...

    android获取GPS经纬度,并根据经纬度获取准确地址 _andoid 原生开发定位无法获取经纬度,

    在Android设备上,我们可以利用内置的GPS传感器或者网络定位服务来获取经纬度坐标。 1. **开启GPS服务** 在Android中,使用LocationManager服务来管理位置更新。首先,在AndroidManifest.xml中添加权限: ```xml ...

    android 基于基站,apn,gps,wifi,network 根据不同手机sim卡获取经纬度

    标题提到的“基于基站,APN,GPS,WiFi,Network 根据不同手机SIM卡获取经纬度”涉及了多种定位技术,每种都有其特性和应用场景。下面将详细介绍这些技术以及如何在Android中实现。 首先,我们来了解几种主要的定位...

    android通过GPS获取经纬度和具体城市

    在Android系统中,获取设备的地理位置信息是移动应用开发中的...不过,需要注意的是,由于GPS定位可能受到信号遮挡等因素影响,可能会出现定位延迟或无法定位的情况。在这种情况下,可以考虑结合网络定位作为备选方案。

    android的GPS定位测试

    本文将深入探讨如何进行Android的GPS定位测试,以及与之相关的技术细节。 首先,我们要理解Android中的GPS定位原理。GPS定位依赖于天空中的多颗卫星,通过测量设备接收到信号的时间差来计算出设备的精确位置。在...

    城市经纬度.txt

    以上数据提供了中国部分重要城市的具体经纬度信息,对于地理研究、地图绘制、GPS定位等多个领域都有着重要的应用价值。通过对这些数据的分析,可以更准确地了解各个城市的具体位置以及相互之间的空间关系,为相关...

    android GPS 定位代码

    下面将详细介绍如何使用Android的GPS定位功能以及Google的地理API。 首先,Android系统的Location API是实现GPS定位的基础。它允许应用程序请求用户的位置信息,不仅限于GPS,还可以通过网络或其他位置提供者获取。...

    Android GPS定位

    本文将深入探讨Android GPS定位的原理、API使用、权限管理以及优化策略。 一、Android GPS定位原理 1. GPS工作原理:GPS定位依赖于一组分布在地球轨道上的24颗卫星,通过接收至少四颗卫星的信号,计算出设备的...

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

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

    GPS定位城市

    2. **API集成**:选择合适的GPS定位库,如Android的`FusedLocationProviderClient`或iOS的`CoreLocation`框架。这些库提供了接口来请求用户的地理位置信息。 3. **请求定位**:调用API提供的方法来获取用户的位置...

    Android 获取当前经纬度

    1. GPS定位: GPS是获取精确经纬度的首选方式,它通过接收卫星信号来计算设备的位置。在Android中,我们可以使用`LocationManager`和`LocationListener`来获取GPS坐标。首先,你需要在AndroidManifest.xml中添加访问...

    android 获取经纬度及街道信息百度定位

    在Android应用开发中,获取设备的经纬度及街道信息是一项常用功能,这通常涉及到地理定位服务。本项目“LBStest”就是一个实例,展示了如何在Android Studio环境下利用百度地图API来实现这一目标。下面将详细讲解这...

    Android内置GPS与百度GPS对比.zip

    它依赖于手机硬件中的GPS芯片,该芯片接收到至少四颗卫星的信号后,通过三角定位计算出设备的经纬度坐标。这一过程通常需要较长时间,尤其是在室内或信号弱的环境下,可能需要几分钟才能获取到第一定位。内置GPS的...

    androidgps基站与WIFI定位源码.zip

    本资源“androidgps基站与WIFI定位源码.zip”提供了一套实现GPS、基站和Wi-Fi定位功能的源代码,非常适合Android开发者学习和参考。 首先,我们要理解Android系统中的定位机制。Android提供了Location API,这是一...

    android 基站、WIFI、GPS定位集合【源码】

    - **原理**:GPS定位是通过接收至少4颗卫星的信号,计算出设备到每颗卫星的距离,进而确定三维坐标。 - **API**:Android的`LocationManager.requestLocationUpdates()`用于请求GPS位置更新,`LocationProvider`...

    Android中GPS定位获取坐标信息

    本篇文章将深入探讨如何在Android应用中实现GPS定位,获取坐标信息,并利用这些信息进行地理编码(Geocoding)以获取详细的地理位置描述。 首先,为了在Android应用中使用GPS,我们需要在`AndroidManifest.xml`文件...

    Android 根据经纬度获取地址

    在Android开发中,有时我们需要根据用户的GPS坐标(经度和纬度)获取具体的地理位置信息,如地址、名称、电话和邮编等。这通常涉及到地理编码(Geocoding)的过程,即通过地理位置坐标反向查询到人类可读的地址信息...

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

    在Android中,`LocationManager`类提供了对GPS的支持,通过`requestLocationUpdates()`方法注册GPS定位监听器,当GPS信号可用时,会接收到包含经纬度、海拔等信息的`Location`对象。GPS定位精度最高,可达几米,但在...

Global site tag (gtag.js) - Google Analytics