我的应用会使用GPS
,Cellular network
或WiFi
准确确定当前位置。如果GPS
信号强度较差或较低,那么准确度会很差,所以我必须关闭GPS
并切换cellular network
或WiFi
。
我的挑战是
1.如何判断GPS
信号是差还是强。如果差,我需要停止GPS
并切换到cellular network
或WiFi
?
2.如果GPS
信号很强,如何确认位置是否准确并运行locationManager.removeUpdates(locationListener);
以停止更新?
3.电池消耗应该是最低的。
感谢您提前获取任何建议或代码。
答案 0 :(得分:1)
您可以立即向所有提供商(GPS,手机和Wifi)索取位置信息。交付的位置提供有关修复类型的信息以及有关修复的估计准确度的信息。
因此,当您检查了已收到的结果后,您可以关闭进一步的更新。
要获得蜂窝电话和WiFi修复的电池非常低,所以如果你打开GPS,我也不用担心打开手机和WiFi同时修复。
答案 1 :(得分:0)
我想我可以回答你的第一个问题。要确定GPS信号强度,请使用以下代码:
getGsmSignalStrength();
private class MyPhoneStateListener extends PhoneStateListener
{
/* Get the Signal strength from the provider, each time there is an update */
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
super.onSignalStrengthsChanged(signalStrength);
Toast.makeText(getApplicationContext(), "Go to Firstdroid!!! GSM Cinr = "
+ String.valueOf(signalStrength.getGsmSignalStrength()), Toast.LENGTH_SHORT).show();
}
};
我希望这会有所帮助。