2 nonfuxinyang nonfuxinyang 于 2012.12.11 11:13 提问

如何刷新Android手机的GPS状态

我用Android手机在室外定位后,回到室内,没有了GPS信号。这里调用getLastKnownLocation返回的是上次的定位结果。实际是此时(在室内)已经没有了GPS信号。我如何刷新GPS状态?

3个回答

Sueyexin
Sueyexin   2012.12.11 13:13

如果你是在室内测试,试试既用网络有用GPS卫星(注意:从网络上得到的位置信息有时候不是100%准确)

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
  locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);and wait sometime for getting a gps fix from gps-reciver.normaly it takes 2 to 3 minutes if there is less signal strength it may take long.

如果你有任何问题,请贴你的代码,这样才能方便查问题在哪里。

niangzhi
niangzhi   2012.12.11 13:31

就像Sueyexin的那样,当你在室外或者是接近窗口的位置的时候你可以那几行代码来获得GPS坐标
然而当你房间里或地下室,你还想获得GPS坐标,你可以试试这个替代方案,当你在地下室或在房间里你还有网络信号的时候。这里您可以使用TelePhony API来获取GPS坐标。

String mcc;  //Mobile Country Code
String mnc;  //mobile network code
String cellid; //Cell ID
String lac;  //Location Area Code

TelephonyManager telephonyManager = (TelephonyManager) myContext.getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation cellLocation = (GsmCellLocation)telephonyManager.getCellLocation();
String networkOperator = telephonyManager.getNetworkOperator();

cellid = String.valueOf( cellLocation.getCid() );
lac = String.valueOf( cellLocation.getLac() );
mcc = networkOperator.substring( 0, 3 );
mnc = networkOperator.substring( 3 );

现在传递cellid,lac,mcc和mnc的值到opencellid.org,你将获得经纬度的值。

niangzhi
niangzhi 这个能解决你的问题么?如果可以的话采纳一下吧
5 年多之前 回复
nonfuxinyang
nonfuxinyang 不错,谢谢你的回复
5 年多之前 回复
liangchichexin
liangchichexin   2012.12.11 13:40

根据你的需要,你可以每5分钟启动一下你的Service。你可以用pending Intent

long UPDATE_INTERVAL=300000;
        Intent myIntent=new Intent(Main.this,YourGPSLOcationClass.class);
        PendingIntent pendingIntent=PendingIntent.getService(Main.this,0,myIntent,0);
        AlarmManager alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);

        Calendar cal=Calendar.getInstance();
        cal.add(Calendar.MINUTE,0);
    alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),UPDATE_INTERVAL,pendingIntent);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
安卓手机GPS修改方法
刷机后手机GPS信号很差,收不到星,有解决办法,自己搞定
Android GPS状态改变与监听
/** * 获取GPS当前状态 * @param context * @return */ private boolean getGPSState(Context context){ LocationManager locationManager = (LocationManager) context.getSystemService(
android如何用模拟的gps
准备工作:我们需要在我们手机上设置允许模拟:  设置 ---》应用程序--》开发---》模拟测试地点开启  (就在开发者选项里面允许debug的下面) 然后声明权限: 1 如何fake gps ? gps的fake 有个很奇怪的现象  你需要把fake gps的代码
android动态获取gps信息后本地文件保存问题总结
本文介绍了在手机android设备GPS信噪比测试,实时记录手机GPS的信噪比SNR信息过程中遇到的手机位置状态定时器失效、长时间锁屏后服务停止工作、频繁文件读写操作造成性能卡顿、界面更新延缓数据出现间隔等问题的解决方案。
如何获取GPS状态
简单,一个广播搞定 IntentFilter mIntentFilter = new IntentFilter(); mIntentFilter.addAction(LocationManager.GPS_FIX_CHANGE_ACTION); mIntentFilter.addAction(LocationManager.GPS_ENABLED_CHAN
优化Android手机的GPS定位系统,加速搜星,定位准确
虽然是转载的技术贴,但是也经过本人亲测,效果比较满意。同时我还登陆了http://www.pool.ntp.org/zone/cn网站进行查阅。大家有兴趣的话可以用谷歌的网页翻译进去看看,都中文,能看懂的。呵呵,同时,我还把自己的笔记本电脑的时间同步也进行了更改。大家可以试试。我将手机的google服务器改成了nokia的,大家有兴趣的话,可以试试不同的服务情况,适合大家的话,请顶我。。。觉得好的
Android获取GPS定位数据
本身也是从事GPS开发,所以就把Android手机中获取自身GPS定位数据的方法,写了一个小工具,把获取到的GPS数据保存到SQLite数据库中,同样也可以定义一个通讯协议,用UDP或者TCP的方式发送出去,做一个PC上的服务,然后在地图上面显示出来,不多说了,先上图(真实手机的测试图片)源代码下载地址:http://u.115.com/file/f8981b0e93请各位多多指教
Android中如何监听手机GPS打开状态
位置坐标监听、GPS卫星状态监听在Android应用中常见,我们是否一进入应用就注册相应的监听? 答案当然不是的。比如,手机的GPS没有打开,而我们注册了监听,那有什么用呢? 所以,我们应该实时监听手机的GPS打开状态,根据GPS状态来注册或取消注册事例~~ 具体实现很简单,就是设置一个ContentObserver,用于观察GPS打开状态,如果GPS打开就注册监听器,如果G
小白教你如何在android手机上获取gps和基站的经纬度
android手机获取gps和基站的经纬度地址          在导入这个demo时,要确保你的手机打开了GPS,要不就会报错,当然你也可以优化一下这个程序,下面先给大家这两个好用的代码先,不过我没加入进去,大家可以试着加一下,以优化我的代码。 /** * 判断GPS是否开启,GPS或者AGPS开启一个就认为是开启的 * * @param context * @re
Android 位置服务与GPS实时定位
一、概述 据专家说:人类活动80%的信息与空间位置信息有关,这还真不是专家吹牛。举个例子:你跟女神约饭,你得知道女神在哪里吧?你们选择约在哪里的餐厅最合适?你们过去分别有多远?你们怎么过去?——总结起来就是在哪里、有多远、怎么去?——技术翻译:位置 + 导航。 手机等移动设备是非常好的工具,都集成了定位模块,为用户提供位置服务。日常生活中用的比较多的: 高德、百度、腾讯、Google等手机电