当我在手机中使用下面的代码时,它总是选择网络来获取经度和纬度,即使Wi-Fi关闭也没有选择GPS。我希望应用程序选择最佳,运行,准确的位置提供程序。
LocationManager LM1=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider=LM1.getBestProvider(criteria, true);
LM1.requestLocationUpdates(provider,500,1,this);
ET3.setText(provider);
使用的权限是:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
答案 0 :(得分:1)
如果您想要最准确,请检查GPS是否已启用。如果是,请使用它。如果没有,请使用网络。向getBestProvider发送空白条件永远不会让您使用GPS-它会假设您不需要那么准确。