java - 【Android】使用模拟位置,关闭模拟位置后GPS启动不了
天蓬老师
天蓬老师 2017-04-17 17:12:07
[Java讨论组]

问题描述:

应用中开启了模拟位置,当应用关闭或者在应用中手动关闭模拟位置后,手机的GPS无法启动,必须重启手机才能恢复正常。

代码详情:
LocationManager的初始设置(应用本身也需要开启GPS)

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
locationManager.addGpsStatusListener(gpsStatusListener);
locationManager.addNmeaListener(nmeaListener);

开启模拟位置,覆盖掉GPS时的代码如下(通过点击事件开启的):

mMockProviderName = LocationManager.GPS_PROVIDER;
locationManager.setTestProviderEnabled(mMockProviderName, true);
locationManager.requestLocationUpdates(mMockProviderName, 1000, 0, locationListener);

点击关闭模拟位置时的代码如下:

locationManager.setTestProviderEnabled(mMockProviderName, false);                        
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
locationManager.removeTestProvider(mMockProviderName);

程序退出时关闭模拟位置的代码如下

locationManager.setTestProviderEnabled(mMockProviderName, false);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);
locationManager.removeTestProvider(mMockProviderName);
locationManager.removeUpdates(locationListener); locationManager.removeGpsStatusListener(gpsStatusListener);      
locationManager.removeNmeaListener(nmeaListener);

基本上都是按照官方文档来的,该现象在google上搜索了一番,并没有发现类似问题的解决办法。想请教一下各位出现如问题所述的现象是什么原因,如何修改。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号