/**
* 得到位置信息
*/
private void getLocation() {
// 获取位置管理服务
LocationManager locationManager;
String serviceName = Context.LOCATION_SERVICE;
locationManager = (LocationManager) this.getSystemService(serviceName);
// 查找到服务信息
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); // 获取GPS信息
Location location = locationManager.getLastKnownLocation(provider); // 通过GPS获取位置
updateToNewLocation(location);
try {
tv1.setText(getLocation(location));
} catch (Exception e) {
e.printStackTrace();
Log.e("", e.getMessage());
}
}

/**
* 根据精度和纬度定位到城市
*
* @param itude
* @return
* @throws Exception
*/
private String getLocation(Location itude) throws Exception {
String resultString = "";
/** 这里采用get方法,直接将参数加到URL上 */
String urlString = String.format(
"http://maps.google.cn/maps/geo?key=abcdefg&q=%s,%s",
itude.getLatitude(), itude.getLongitude());
Log.i("URL", urlString);

/** 新建HttpClient */
HttpClient client = new DefaultHttpClient();
/** 采用GET方法 */
HttpGet get = new HttpGet(urlString);
try {
/** 发起GET请求并获得返回数据 */
HttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
BufferedReader buffReader = new BufferedReader(
new InputStreamReader(entity.getContent()));
StringBuffer strBuff = new StringBuffer();
String result = null;
while ((result = buffReader.readLine()) != null) {
strBuff.append(result);
}
resultString = strBuff.toString();

/** 解析JSON数据,获得物理地址 */
if (resultString != null && resultString.length() > 0) {
JSONObject jsonobject = new JSONObject(resultString);
JSONArray jsonArray = new JSONArray(jsonobject.get("Placemark")
.toString());
resultString = "";
for (int i = 0; i < jsonArray.length(); i++) {
resultString = jsonArray.getJSONObject(i).getString(
"address");
}
}
} catch (Exception e) {
throw new Exception("获取物理位置出现错误:" + e.getMessage());
} finally {
get.abort();
client = null;
}
return resultString;

}

补充一下:
在AndroidMenifest.xml里面需要加上
android.permission.INTERNET、android.permission.ACCESS_COARSE_LOCATION、android.permission.READ_PHONE_STATE权限,否则会出错。

android 获取GPS定位,相关推荐

  1. Android获取GPS网络定位经纬度信息

    定位一般分为是:GPS定位,WIFI定位,基站定位 和 AGPS定位 GPS定位 GPS定位需要手机GPS模块硬件支持.GPS走的是卫星通信的通道,在没有网络连接的情况下也能使用,并且通过GPS方式准 ...

  2. java编程手机gps定位_GPS 获取Gps定位信息的Android源码实例,通过这个JAVA 目,你可能学会GPS在 手机 238万源代码下载- www.pudn.com...

    文件名称: GPS下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 59 KB 上传时间: 2013-04-08 下载次数: 22 详细说明:获取Gps定位信息的A ...

  3. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...

    1.添加权限--6.0之后要动态获取,下面会说 2.直接上代码,不多说,代码中注释很详细. private static final int BAIDU_READ_PHONE_STATE = 100; ...

  4. Android系统GPS定位实现

    一.定位方式简介 定位基本分为三种方式,特点如下: 1.wifi定位:IP地址定位,根据ip地址查询实际的地理位置,因为动态获取ip的操作,定位不准确 2.基站定位:根据基站(信号塔)的个数以及手机与 ...

  5. 使用带GPS模块的LTE Cat.4模组获取GPS定位信息

    上海域格miniPCIe LTE模组 CLM920 NC5 mdgv为Cat.4模组,且带有GPS模块可支持获取GPS定位信息: 将CLM920 NC5 MGC模组连接到PC上,安装驱动后,可以在设备 ...

  6. python模拟gps定位_python解析nmea0183协议获取GPS定位信息

    python解析nmea0183协议获取GPS定位信息 nmea0183协议里面定位数据主要在GPRMC报文里面,下面是报文的大体形式: b'$GPRMC,111025.00,A,2517.03374 ...

  7. Android APP - GPS定位并获取地理位置

    1. 相关知识简介 通过LocationManagerService可以获取位置,这个service的aidl文件在frameworks/base/location/java/android/loca ...

  8. android开发GPS定位测试(附效果图和示例)【转】

    本人做了GPS相关的嵌入式软件已经几年了,所以说起要做个测试 GPS定位模块的程序,第一反应就是串口读取GPS模块的数据,然后解析GPS的NMEA格式数据 今天因为工作需要,把以前编写的一个GPS测试 ...

  9. Android的gps定位

    //GPS定位不需要在网络条件下可以运行,但是室内没法定位,必须到空旷的街道上(天上卫星与GPS芯片进行交互) import android.app.Service; import android.c ...

最新文章

  1. 怎么看b树是几阶_看我在B站上怎么学习的
  2. It appears as though you do not have permission to view information ...
  3. linux etc 漏洞利用,漏洞利用 | 看我如何利用Kerberos EoP渗透你的Linux系统
  4. 从零入门 FreeRTOS 操作系统之创建任务流程
  5. socket编程实现文件传输功能
  6. matlab迭代次数,怎么知道程序中的迭代次数呢
  7. ElasticSearch架构反向思路
  8. SQL Server复制需要有实际的服务器名称才能连接到服务器 错误解决方案
  9. python locust mqtt_Boomer 实战压测 mqtt,2w 并发轻松实现
  10. Selenium2用最简xpath查找元素
  11. Windows蓝屏之后,DUMP分析教程
  12. 大数据可视化常用的方式有哪些
  13. SkeyeRTSPLive传统视频监控互联网实现利器解决方案
  14. vscode让代码敲出火焰
  15. linux kobject-uevent(热插拔事件)
  16. SQL Server 2005系列教学(11) 约束
  17. 关于华为设备ospf进程中RID重叠的问题
  18. spring实战学习(三)配置方式
  19. 经验分享:个人网站如何备案?
  20. Final Cut Pro X 10.4.8 Apple出品的专业视频非线性编辑软件

热门文章

  1. 李海自学java_JAVA程序设计 实验一
  2. python中怎么替换字母_python去除拼音声调字母,替换为字母的方法
  3. 致软件测试员——面试,你准备好了么?
  4. html5直播api,HTML5 VideoAPI,打造自己的Web视频播放器
  5. 朋友圈如何测试(思维导图)
  6. 使用libsvm(faruto)工具箱问题小结
  7. php 多层 对象,php多层数组和对象的转换
  8. python复制文件夹不阻塞_11.python并发入门(part14阻塞I/O与非阻塞I/O,以及引入I/O多路复用)...
  9. pytorch保存模型参数
  10. PYTORCH BN层