我的应用程序应该使用GPS、Cellular network或WiFi.I查找当前位置,通过GPS可以轻松地找到当前位置。
LocationManager locationmanager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationlistener = new mylocationlistener();
locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationlistener);其中mylocationlistener()函数如下所示
private class mylocationlistener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
if (location != null) {
Toast.makeText(LocationActivity.this,"latitude: "+
location.getLatitude() + "longitude: " + location.getLongitude(),
Toast.LENGTH_LONG).show();
}
}它正常工作,我可以通过上面的代码找到当前的位置,我需要更改locationmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationlistener);
没关系,但我的挑战是
所以,我的问题是,如果有任何方法来确定全球定位系统的信号强度,而不打开GPS?谢谢您的任何帮助。
发布于 2012-07-17 02:13:47
不,无法确定没有打开的传感器的信号强度。
为了确定卫星和全球定位系统(如电话)之间信号的强度,两者都需要发送和接收GPS信号,这自然要求手机上的GPS被打开。
同样的逻辑是,如果不打开WiFi,就不能列出附近可用的WiFi网络。
您最好的选择是简单地打开它,如果您决定不使用它,则关闭它。
确定是否使用GPS的最简单方法是打开它,然后使用LocationManager的getBestProvider方法。如果最好的供应商不是GPS,那么再次关闭它。您还可以使用getGpsStatus方法获得一个GpsStatus对象,其指标包括卫星的最大数量和接收修复所需的时间。
有关如何启用/禁用全球定位系统,请参见像Tasker这样以编程方式启用GPS。可悲的是,你只能在2.3前的手机上以编程方式这样做,然后才能利用它。“正确”的方法是提示用户启用或禁用它。
https://stackoverflow.com/questions/11515150
复制相似问题