Yousif
Yousif

Reputation: 569

How to Obtain an Accurate Location Provider

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

Answers (1)

Gabe Sechan
Gabe Sechan

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

Related Questions