Hello Friends!
  I am going to share
very useful demo for location manager in android. It will search all known
location and display in a list. I am sharing code below hope it will helpful for
you.
1-Print Screen:
2-manifest.xml
<?xml version="1.0"
encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.manish.location.manager"
    android:versionCode="1"
    android:versionName="1.0" >
   
<uses-sdk android:minSdkVersion="15"
/>
   
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
/>
 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
/>
   
<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
       
<activity
            android:label="@string/app_name"
            android:name=".LocationManagerDemoActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN"
/>
                <category android:name="android.intent.category.LAUNCHER"
/>
            </intent-filter>
       
</activity>
   
</application>
 </manifest>
3-LocationManagerDemoActivity.java
package
com.manish.location.manager;
import java.util.List;
import
android.app.Activity;
import
android.location.Criteria;
import
android.location.Location;
import
android.location.LocationListener;
import
android.location.LocationManager;
import
android.location.LocationProvider;
import android.os.Bundle;
import
android.widget.TextView;
public class LocationManagerDemoActivity
extends Activity implements LocationListener {
       private static final String[] States = { "No
Service",
                     "Temporarily
Unavailable", "Available" };
       private TextView result;
       private LocationManager locationManager;
       private String serviceProvider;
       @Override
       public void onCreate(Bundle
savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);
              // Get the output
UI
              result = (TextView)
findViewById(R.id.result);
              // Get the location
manager
              locationManager = (LocationManager)
getSystemService(LOCATION_SERVICE);
              // List all
providers:
              List<String>
providers = locationManager.getAllProviders();
              for (String provider :
providers) {
                     printProvider(provider);
              }
              Criteria
criteria = new Criteria();
              serviceProvider = locationManager.getBestProvider(criteria,
false);
              result.append("\n\nProvider:\n");
              printProvider(serviceProvider);
              result.append("\n\nLocations
(starting with last known):");
              Location
location = locationManager.getLastKnownLocation(serviceProvider);
              printLocation(location);
       }
       /** Register for
the updates when Activity is in foreground */
       @Override
       protected void onResume() {
              super.onResume();
              locationManager.requestLocationUpdates(serviceProvider, 20000, 1, this);
       }
       /** Stop the
updates when Activity is paused */
       @Override
       protected void onPause() {
              super.onPause();
              locationManager.removeUpdates(this);
       }
       public void
onLocationChanged(Location location) {
              printLocation(location);
       }
       public void
onProviderDisabled(String provider) {
              // let okProvider
be bestProvider
              // re-register for
updates
              result.append("\n\nProvider
Disabled: " + provider);
       }
       public void
onProviderEnabled(String provider) {
              // is provider
better than bestProvider?
              // is yes,
bestProvider = provider
              result.append("\n\nProvider
Enabled: " + provider);
       }
       public void
onStatusChanged(String provider, int status, Bundle extras) {
              result.append("\n\nProvider
Status Changed: " + provider + ", Status="
                           +
States[status] + ",
Extras=" + extras);
       }
       private void printProvider(String
provider) {
              LocationProvider
info = locationManager.getProvider(provider);
              result.append(info.toString()
+ "\n\n");
       }
       private void
printLocation(Location location) {
              if (location == null)
                     result.append("\nLocation[unknown]\n\n");
              else
                     result.append("\n\n" +
location.toString());
       }
}
4-main.xml
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
   
<ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
       
<TextView
            android:id="@+id/result"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
   
</ScrollView>
</LinearLayout>

 
No comments:
Post a Comment