Android 获取手机GPS
2015-11-30 19:59
549 查看
如果使用的是谷歌地图查询。需要进行修正
如果使用的是百度地图查询。不需要进行修正
同时别忘了在AndroidManifest.xml文件中加入如下权限:
<!-- 连接互联网Internet权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- GPS定位权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
-----------1.获取GPS
如果使用的是百度地图查询。不需要进行修正
同时别忘了在AndroidManifest.xml文件中加入如下权限:
<!-- 连接互联网Internet权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- GPS定位权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
-----------1.获取GPS
package com.heima.gps; import java.util.List; import android.app.Activity; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { // 位置管理 private LocationManager lm; // 监听位置信息 private LocationListeners listener; private TextView tv_location; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_location = (TextView) findViewById(R.id.tv_location); // 实例化 lm = (LocationManager) getSystemService(LOCATION_SERVICE); listener = new LocationListeners(); // 监听位置信息 // 第二个参数:两次位置更新的时间间隔 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, listener); } @Override protected void onDestroy() { super.onDestroy(); // 关闭监听 lm.removeUpdates(listener); listener = null; } class LocationListeners implements LocationListener { // 位置信息改变调用 @Override public void onLocationChanged(Location location) { // 获取精度 返回的是double 转换为String String longitude = "经度:" + location.getLongitude(); String latitude = "纬度:" + location.getLatitude(); String accuracy = "精度:" + location.getAccuracy(); tv_location.setText(longitude + "\n" + latitude + "\n" + accuracy); System.out.println(longitude + "\n" + latitude + "\n" + accuracy); } // 状态信息改变调用 开启->关闭 关闭->开启 @Override public void onStatusChanged(String provider, int status, Bundle extras) { } // 当一个位置提供者可以使用了调用 @Override public void onProviderEnabled(String provider) { } // 当一个位置提供者不可以使用了调用 @Override public void onProviderDisabled(String provider) { } } // 显示获取位置信息的方法 private void getLocationFunctions() { // 拿到获取位置的方式 // 模拟器有两种获取方式 1.passive 2.gps // 真机有三种方式获取位置信息 1.passive 2.gps 3.network List<String> allProviders = lm.getAllProviders(); for (String s : allProviders) { System.out.println(s); } } }
</pre><pre name="code" class="java">----------2.修正GPS获取坐标
项目名称 : GPSLocationAmendment 需要文件: ModifyOffset.java axisoffset.dat
</pre><pre name="code" class="java"><pre name="code" class="java">public class Demo { public static void main(String[] args) throws Exception { /** * 修正火星坐标。 */ // 如果使用坐标直接在百度地图查询是没有问题的,因为百度地图有修正 如果使用谷歌地图会出现偏移需要修正 ModifyOffset offset = ModifyOffset.getInstance(Demo.class.getResourceAsStream("axisoffset.dat")); PointDouble s2c = offset.s2c(new PointDouble(108.23229969, 22.83799822)); System.out.println(s2c); } }
相关文章推荐
- Android开发总结笔记 Menu(菜单) 1-1-18
- android开发之Notification_通知栏消息
- Android Button的3D触摸效果
- Android 解决BitmapFactory.decodeFile(file) 报OOM问题
- 321android浏览器
- Android之异步处理机制
- ListView适配器BaseAdapter之getView的原理--convertView源码分析Android5.1
- Android 中 ToolBar箭头颜色设置
- 列表视图(ListView)——BaseAdapter
- Android短信----发送流程---框架层(Frameworks)
- android:service
- Android 扫描指定路径里的所有文件
- Android sqlite3工具的使用
- Android 图文混排(EditText)
- android 沉浸模式记录
- 通过Sql语句和android封装好的方法控制SQLite数据库增删改查
- Android应用性能优化之使用SparseArray替代HashMap
- Android SDK 开发范例大全---3.2更改手机窗口画面底色
- Android FTP服务器搭建与文件上传及下载
- Android实现接口方式注册监听器