package cn.xx.currentlocation;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import android.app.Activity;
import android.content.Context;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class CurrentLocation extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager locationManager;
String serviceName = Context.LOCATION_SERVICE;
locationManager = (LocationManager) getSystemService(serviceName);
// String provider = LocationManager.GPS_PROVIDER;
// String provider = "gps";
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);
Location location = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
locationManager.requestLocationUpdates(provider, 2000, 10, locationListener);
}
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
updateWithNewLocation(location);
}
public void onProviderDisabled(String provider) {
updateWithNewLocation(null);
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};
private void updateWithNewLocation(Location location) {
String latLongString;
TextView myLocationText;
myLocationText = (TextView) findViewById(R.id.myLocationText);
// try {
// Thread.sleep(0);//因为真机获取gps数据需要一定的时间,为了保证获取到,采取系统休眠的延迟方法
// } catch (InterruptedException e) {
// e.printStackTrace();
// throw new RuntimeException(e);
// }
if (location != null) {
double lat = location.getLatitude();
double lng = location.getLongitude();
Geocoder geocoder=new Geocoder(this);
// Geocoder geocoder = new Geocoder(this, Locale.CHINA);
List places = null;
try {
// Thread.sleep(2000);
places = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 5);
// Thread.sleep(2000);
Toast.makeText(CurrentLocation.this, places.size()+"", Toast.LENGTH_LONG).show();
System.out.println(places.size()+"");
} catch (Exception e) {
e.printStackTrace();
}
String placename = "";
if (places != null && places.size() > 0) {
// placename=((Address)places.get(0)).getLocality();
//一下的信息将会具体到某条街
//其中getAddressLine(0)表示国家,getAddressLine(1)表示精确到某个区,getAddressLine(2)表示精确到具体的街
placename = ((Address) places.get(0)).getAddressLine(0) + ", " + System.getProperty("line.separator")
+ ((Address) places.get(0)).getAddressLine(1) + ", "
+ ((Address) places.get(0)).getAddressLine(2);
}
latLongString = "纬度:" + lat + "/n经度:" + lng;
Toast.makeText(CurrentLocation.this, placename, Toast.LENGTH_LONG).show();
} else {
latLongString = "无法获取地理信息";
}
myLocationText.setText("您当前的位置是:/n" + latLongString);
}
}
又有其他项目,还没着手这个GPS功能,没来得及试
分享到:
相关推荐
总结来说,获取Android设备的GPS经纬度并转换为地址,需要利用Location服务获取定位信息,然后通过Geocoding API或`Geocoder`将坐标解析为可读的地址。在实际应用中,还需要考虑位置权限的获取、GPS状态的检查以及...
在Android原生开发中,获取GPS经纬度以及根据...通过以上步骤,我们可以实现Android原生开发中获取GPS经纬度并转换为准确地址的功能。在实际应用中,可能还需要考虑网络状况、定位精度、耗电等因素,进行相应的优化。
本篇将详细介绍如何在Android中获取经纬度坐标。 一、Android权限设置 在AndroidManifest.xml文件中,必须声明使用GPS的权限,这是获取位置信息的前提。添加以下代码: ```xml <uses-permission android:name=...
在Android平台上,开发一款应用以实现GPS定位并获取经纬度值是常见的需求。这个"Android应用实现GPS定位返回经纬度Demo"就是一个实例,它演示了如何有效地从Android系统的Location服务中获取地理位置信息。下面我们...
总之,获取Android设备上的GPS经纬度并计算两点距离是移动应用开发中的基本技能,涉及到LocationManager服务的使用、位置监听器的注册以及地理坐标间的距离计算。通过理解这些知识点,开发者可以创建出能够提供精确...
在Android开发中,有时我们需要根据用户的GPS坐标(经度和纬度)获取具体的地理位置信息,如地址、名称、电话和邮编等。这通常涉及到地理编码(Geocoding)的过程,即通过地理位置坐标反向查询到人类可读的地址信息...
在Android开发中,GPS定位是实现地理定位服务的关键部分,用于获取设备的精确地理位置信息,如经度和纬度。以下是一份详细的关于如何在Android中实现GPS...通过上述步骤,开发者可以实现获取并显示设备的经纬度坐标。
在Android应用开发中,获取设备的当前地理位置经纬度坐标是一项常见的功能,这通常涉及到位置服务、GPS、网络定位等技术。下面将详细讲解如何在Android Studio项目中实现这一功能。 首先,我们需要添加必要的权限到...
本篇将详细探讨"Android GPS转百度坐标"的相关知识点,以及如何在Android应用中实现这个功能。 首先,我们要了解GPS坐标和百度坐标体系的基础知识。GPS坐标通常指的是WGS84坐标系统,这是全球通用的地理坐标系统,...
GPS是获取精确经纬度的首选方式,它通过接收卫星信号来计算设备的位置。在Android中,我们可以使用`LocationManager`和`LocationListener`来获取GPS坐标。首先,你需要在AndroidManifest.xml中添加访问GPS的权限: ...
在Android平台上,开发一款应用程序以实现手机原生GPS定位功能并循环获取经纬度坐标,将这些数据存储到SQLite数据库中,是一项常见的需求。这个过程涉及到了Android系统服务、位置API、时间戳处理以及本地数据库操作...
本篇文章将通过一个具体的示例代码来详细解析如何在Android系统中实现GPS定位功能,从而获取用户的经纬度坐标。 #### 二、关键知识点 ##### 1. 权限声明 在使用Android系统的GPS功能之前,首先需要在应用的`...
1. **GPS(全球定位系统)**:GPS是最精确的定位方式,通过接收卫星信号计算出设备的位置。在户外且无遮挡的情况下,可以提供几米以内的精度。Android中使用`LocationManager`服务和`GpsLocationProvider`来获取GPS...
本教程将深入探讨如何在Android应用程序中使用GPS获取经纬度坐标,并将其显示在TextView中。以下是一系列详细步骤和相关知识点: 1. **AndroidManifest.xml配置**: 在Android应用中使用GPS服务,必须在`...
在Android系统中,由于国家安全和隐私考虑,GPS获取到的原始坐标数据并非直接采用全球通用的WGS84坐标系,而是使用了被称为“火星坐标”或“GCJ-02”的加密坐标系。这种坐标转换是必要的,因为它使得位置信息在传输...
在Android系统中,获取设备的经纬度位置是常见的需求,主要通过GPS(全球定位系统)、网络定位服务(如Wi-Fi和移动网络)以及离线地图数据来实现。本篇文章将详细探讨这三种方式以及如何在Android应用中实现它们。 ...
在IT行业中,GPS(全球定位系统)是一种广泛应用于地理定位的技术,它允许设备获取精确的经纬度坐标。这篇博文“使用GPS获取经纬度”显然探讨了如何在编程中利用GPS功能来实现这一目标。通常,这涉及到使用特定的API...
在`onLocationChanged`方法中,我们可以获取到`Location`对象,它包含了经纬度坐标以及其他相关信息: ```java @Override public void onLocationChanged(Location location) { double latitude = location....
在IT行业中,GPS(全球定位系统,Global Positioning System)是一项至关重要的技术,它通过接收卫星信号来确定地球上任何位置的精确经纬度坐标。在软件开发、地理信息系统(GIS)、移动应用等领域,模拟GPS经纬度...
这份“androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了一些实现这两种定位方式的源代码,对于学习Android定位机制非常有帮助。接下来,我们将深入探讨这两种定位方法及其在源码中的实现细节。 1. GPS定位: ...