android GPS 获取定位坐标信息 androidgps 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充一点 不需要移动网络支持的方式 只要单纯GPS获取经纬度 在线等 你首先要确保gps已经定位到啊,没定位到返回肯定是null的 首先 我用的是三星I9300 这款手机我跟三星开发工程师确认过了 具有GPS定位功能 、然后 loctionManager.addGpsStatusListener(listener); GpsStatus.Listener listener = new GpsStatus.Listener() { public void onGpsStatusChanged(int event) { switch (event) { // 第一次定位 case GpsStatus.GPS_EVENT_FIRST_FIX: Log.i(TAG, "第一次定位"); break; // 卫星状态改变 case GpsStatus.GPS_EVENT_SATELLITE_STATUS: Log.i(TAG, "卫星状态改变"); // 获取当前状态 GpsStatus gpsStatus = lm.getGpsStatus(null); // 获取卫星颗数的默认最大值 int maxSatellites = gpsStatus.getMaxSatellites(); // 创建一个迭代器保存所有卫星 Iterator<GpsSatellite> iters = gpsStatus.getSatellites() .iterator(); int count = 0; while (iters.hasNext() && count <= maxSatellites) { GpsSatellite s = iters.next(); count++; } System.out.println("搜索到:" + count + "颗卫星"); //Toast.makeText(MainActivity.this, "搜索到:" + count + "颗卫星", Toast.LENGTH_SHORT).show(); break; // 定位启动 case GpsStatus.GPS_EVENT_STARTED: Log.i(TAG, "定位启动"); break; // 定位结束 case GpsStatus.GPS_EVENT_STOPPED: Log.i(TAG, "定位结束"); break; } }; }; 这个可以打印出 搜索到的卫星数量 0,1,2,3 不等 请问下 怎么样确保gps已经定位了 ? <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 连接互联网Internet权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- GPS定位权限 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />在网上看了 基本都是这些权限 都添加好了 首先 我用的是三星I9300 这款手机我跟三星开发工程师确认过了 具有GPS定位功能 、然后 loctionManager.addGpsStatusListener(listener); GpsStatus.Listener listener = new GpsStatus.Listener() { public void onGpsStatusChanged(int event) { switch (event) { // 第一次定位 case GpsStatus.GPS_EVENT_FIRST_FIX: Log.i(TAG, "第一次定位"); break; // 卫星状态改变 case GpsStatus.GPS_EVENT_SATELLITE_STATUS: Log.i(TAG, "卫星状态改变"); // 获取当前状态 GpsStatus gpsStatus = lm.getGpsStatus(null); // 获取卫星颗数的默认最大值 int maxSatellites = gpsStatus.getMaxSatellites(); // 创建一个迭代器保存所有卫星 Iterator<GpsSatellite> iters = gpsStatus.getSatellites() .iterator(); int count = 0; while (iters.hasNext() && count <= maxSatellites) { GpsSatellite s = iters.next(); count++; } System.out.println("搜索到:" + count + "颗卫星"); //Toast.makeText(MainActivity.this, "搜索到:" + count + "颗卫星", Toast.LENGTH_SHORT).show(); break; // 定位启动 case GpsStatus.GPS_EVENT_STARTED: Log.i(TAG, "定位启动"); break; // 定位结束 case GpsStatus.GPS_EVENT_STOPPED: Log.i(TAG, "定位结束"); break; } }; }; 这个可以打印出 搜索到的卫星数量 0,1,2,3 不等 请问下 怎么样确保gps已经定位了 ? 有卫星数量,但这些不一定可用,你先用gps test测试下,还有,室外的定位效果会好点,室内gps不一定好 除了室外,无法定位,就是没有gps了。你先不要updateWithNewLocation(location);getLastKnownLocation(provider)的定位信息不一定是有的。直接加监听,缩短延迟看看。 我是放在一个线程里 每隔3s循环一次 一直取值 既然用的GPS定位肯定不是为了获取1个坐标信息 而是获取运动轨迹 上传到服务器 重头到尾 都没有获取到过这个看了别人的描述http://www.miui.com/article-8-1.html 那我是放在一个线程里 每隔3s循环一次 一直取值 既然用的GPS定位肯定不是为了获取1个坐标信息 而是获取运动轨迹 上传到服务器 重头到尾 都没有获取到过这个看了别人的描述http://www.miui.com/article-8-1.html这个我没看,但是,loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);这个设置本身就是隔一段时间就更新当前定位,它已经有这个功能了。为什么又开线程去访问?还有就是,开了线程,你确定3s内就可以定位到当前位置? 开线城另有目的 在项目中 还有其他事事情做 这个跟 线程没关系 重点在取值上 有没有实现过 GPS获取坐标经纬度的 还是不要用默认的定位,因为有的手机是改过的,定不到位,用百度、高德什么的SDK。可以选择使用什么方式定位的。 额 现在可好需求就是不用移动网的情况下定位 基于网络定位的已经实现过了 现在做离线地图部分 就是户外没有任何网络时定位 或者说 有可能app不是装在手机上 而是带有GPS芯片的机器上 需要GPS定位 这个跟设备、环境有关你把手机拿到室外,用GPS TEST工具先定到位之后,再运行你APP试试 这个例子我用了,可以获取到,可能是楼主device的问题 如何在NDK环境下捕获异常? 求android类似大家来找茬游戏开发源码 找了一天的,还不能解决 android问题 推荐 Android 书籍 用android查询机,排队机那们的终端机OS合适吗 [请教]定时器如何刷新呀? android源码下载后只有.repo文件夹,源代码在哪儿? 请问下java在安卓上开发真的不如c#吗? android类似下抽屉的效果怎么实现 已知framework.apk里有语言资源,但设置里不显示 如何同时使用WIFI和移动数据 关于数据库存储图片的,求助
首先 我用的是三星I9300 这款手机我跟三星开发工程师确认过了 具有GPS定位功能 、
然后 loctionManager.addGpsStatusListener(listener); GpsStatus.Listener listener = new GpsStatus.Listener() {
public void onGpsStatusChanged(int event) {
switch (event) {
// 第一次定位
case GpsStatus.GPS_EVENT_FIRST_FIX:
Log.i(TAG, "第一次定位");
break;
// 卫星状态改变
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
Log.i(TAG, "卫星状态改变");
// 获取当前状态
GpsStatus gpsStatus = lm.getGpsStatus(null);
// 获取卫星颗数的默认最大值
int maxSatellites = gpsStatus.getMaxSatellites();
// 创建一个迭代器保存所有卫星
Iterator<GpsSatellite> iters = gpsStatus.getSatellites()
.iterator();
int count = 0;
while (iters.hasNext() && count <= maxSatellites) {
GpsSatellite s = iters.next();
count++;
}
System.out.println("搜索到:" + count + "颗卫星");
//Toast.makeText(MainActivity.this, "搜索到:" + count + "颗卫星", Toast.LENGTH_SHORT).show();
break;
// 定位启动
case GpsStatus.GPS_EVENT_STARTED:
Log.i(TAG, "定位启动");
break;
// 定位结束
case GpsStatus.GPS_EVENT_STOPPED:
Log.i(TAG, "定位结束");
break;
}
};
}; 这个可以打印出 搜索到的卫星数量 0,1,2,3 不等 请问下 怎么样确保gps已经定位了 ?
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 连接互联网Internet权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- GPS定位权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
在网上看了 基本都是这些权限 都添加好了
首先 我用的是三星I9300 这款手机我跟三星开发工程师确认过了 具有GPS定位功能 、
然后 loctionManager.addGpsStatusListener(listener); GpsStatus.Listener listener = new GpsStatus.Listener() {
public void onGpsStatusChanged(int event) {
switch (event) {
// 第一次定位
case GpsStatus.GPS_EVENT_FIRST_FIX:
Log.i(TAG, "第一次定位");
break;
// 卫星状态改变
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
Log.i(TAG, "卫星状态改变");
// 获取当前状态
GpsStatus gpsStatus = lm.getGpsStatus(null);
// 获取卫星颗数的默认最大值
int maxSatellites = gpsStatus.getMaxSatellites();
// 创建一个迭代器保存所有卫星
Iterator<GpsSatellite> iters = gpsStatus.getSatellites()
.iterator();
int count = 0;
while (iters.hasNext() && count <= maxSatellites) {
GpsSatellite s = iters.next();
count++;
}
System.out.println("搜索到:" + count + "颗卫星");
//Toast.makeText(MainActivity.this, "搜索到:" + count + "颗卫星", Toast.LENGTH_SHORT).show();
break;
// 定位启动
case GpsStatus.GPS_EVENT_STARTED:
Log.i(TAG, "定位启动");
break;
// 定位结束
case GpsStatus.GPS_EVENT_STOPPED:
Log.i(TAG, "定位结束");
break;
}
};
}; 这个可以打印出 搜索到的卫星数量 0,1,2,3 不等 请问下 怎么样确保gps已经定位了 ? 有卫星数量,但这些不一定可用,你先用gps test测试下,还有,室外的定位效果会好点,室内gps不一定好
getLastKnownLocation(provider)的定位信息不一定是有的。
直接加监听,缩短延迟看看。
我是放在一个线程里 每隔3s循环一次 一直取值 既然用的GPS定位肯定不是为了获取1个坐标信息 而是获取运动轨迹 上传到服务器 重头到尾 都没有获取到过这个看了别人的描述
http://www.miui.com/article-8-1.html
我是放在一个线程里 每隔3s循环一次 一直取值 既然用的GPS定位肯定不是为了获取1个坐标信息 而是获取运动轨迹 上传到服务器 重头到尾 都没有获取到过这个看了别人的描述
http://www.miui.com/article-8-1.html这个我没看,但是,loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);这个设置本身就是隔一段时间就更新当前定位,它已经有这个功能了。为什么又开线程去访问?还有就是,开了线程,你确定3s内就可以定位到当前位置?
可以选择使用什么方式定位的。
你把手机拿到室外,用GPS TEST工具先定到位之后,再运行你APP试试