Reputation: 569
When I used the code bellow in my phone it always selects the network to get Longitude and Latitude and didn't select the GPS even when the Wi-Fi is off. I want the application to choose the best, running, accurate location provider.
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);
the permissions used are:
<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"/>
Upvotes: 0
Views: 261
Reputation: 93569
If you want the most accurate, check if GPS is enabled. If it is, use it. If not, use network. Sending a blank criteria to getBestProvider will never cause you to use GPS- its going to assume you don't need that accuracy.
Upvotes: 1