android手机获取gps和基站的经纬度地址

<--界面-->
<?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:background="#FFD3D7DF"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/location"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dip"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:layout_marginTop="20dip"
        android:background="@drawable/bg_frame"
        android:gravity="center_vertical"
        android:orientation="vertical"
        android:paddingBottom="2dip"
        android:paddingLeft="10dip"
        android:paddingRight="10dip"
        android:paddingTop="10dip" >

        <TextView
            android:id="@+id/providerTitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="获取经纬度:"
            android:textColor="#007979" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <RadioGroup
                android:id="@+id/providerGroup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <RadioButton
                    android:id="@+id/gpsProvide"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="gps"
                    android:textColor="#005AB5" />

                <RadioButton
                    android:id="@+id/networkProvide"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="基站"
                    android:textColor="#005AB5" />
            </RadioGroup>

            <ImageButton
                android:id="@+id/bestLocationProId"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/loction" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="最佳选择方式:"
                android:textColor="#005AB5" />

            <TextView
                android:id="@+id/locationProId"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="#8F4586" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="经度:"
                android:textColor="#005AB5" />

            <EditText
                android:id="@+id/latEditTextId"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:enabled="false"
                android:textColor="#8F4586" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="纬度:"
                android:textColor="#005AB5" />

            <EditText
                android:id="@+id/lonEditTextId"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:enabled="false"
                android:textColor="#8F4586" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>




<---activity->
package com.talkweb.mobileapp;

import java.text.DecimalFormat;

import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.RadioGroup.OnCheckedChangeListener;

/**
 * 
 * @author Mr.Z
 * @time 2012-5-16
 * 
 */
public class LocationappActivity extends Activity {

	private ImageButton btnGetBestLocationPro;
	private EditText txtLat;
	private EditText txtLon;
	private TextView txtLocationPro;
	private LocationManager locationManager;
	private DecimalFormat format;
	private String provider;
	private RadioGroup providerGroup;
	private RadioButton radGps;
	private RadioButton radNetwork;
	private String latStr;
	private String lonStr;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.main);

		btnGetBestLocationPro = (ImageButton) findViewById(R.id.bestLocationProId);
		btnGetBestLocationPro.setOnClickListener(new GetBestLocationProListener());

		txtLat = (EditText) findViewById(R.id.latEditTextId);
		txtLon = (EditText) findViewById(R.id.lonEditTextId);
		txtLocationPro = (TextView) findViewById(R.id.locationProId);
		format = new DecimalFormat("#.000000");

		locationManager = (LocationManager) LocationappActivity.this.getSystemService(Context.LOCATION_SERVICE);
		Criteria criteria = new Criteria();
		criteria.setAccuracy(Criteria.ACCURACY_FINE);
		criteria.setPowerRequirement(Criteria.POWER_LOW);
		criteria.setAltitudeRequired(false);
		criteria.setSpeedRequired(false);
		criteria.setCostAllowed(false);
		provider = locationManager.getBestProvider(criteria, false);
		txtLocationPro.setText(provider);
		locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new TestLocationListener());

		providerGroup = (RadioGroup) findViewById(R.id.providerGroup);
		radGps = (RadioButton) findViewById(R.id.gpsProvide);
		radNetwork = (RadioButton) findViewById(R.id.networkProvide);
		providerGroup.setOnCheckedChangeListener(new LocationProvideCheckedlistener());

		if (provider.equals(LocationManager.GPS_PROVIDER)) {
			System.out.println("gps");
			radGps.setSelected(true);
			radGps.setChecked(true);
		} else if (provider.equals(LocationManager.NETWORK_PROVIDER)) {
			System.out.println("network");
			radNetwork.setSelected(true);
			radNetwork.setChecked(true);
		}
	}

	private class GetBestLocationProListener implements OnClickListener {
		@Override
		public void onClick(View v) {

			Criteria criteria = new Criteria();
			criteria.setAccuracy(Criteria.ACCURACY_FINE);
			criteria.setPowerRequirement(Criteria.POWER_LOW);
			criteria.setAltitudeRequired(false);
			criteria.setSpeedRequired(false);
			criteria.setCostAllowed(false);
			String provider = locationManager.getBestProvider(criteria, false);
			txtLocationPro.setText(provider);
			locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new TestLocationListener());
		}
	}

	private class TestLocationListener implements LocationListener {
		@Override
		public void onLocationChanged(Location location) {
			double lat = location.getLatitude();
			double lon = location.getLongitude();
			latStr = format.format(lat);
			lonStr = format.format(lon);
			txtLat.setText(latStr);
			txtLon.setText(lonStr);

		}

		@Override
		public void onProviderDisabled(String provider) {

		}

		@Override
		public void onProviderEnabled(String provider) {

		}

		@Override
		public void onStatusChanged(String provider, int status, Bundle extras) {

		}

	}

	private class LocationProvideCheckedlistener implements OnCheckedChangeListener {

		@Override
		public void onCheckedChanged(RadioGroup group, int checkedId) {
			if (checkedId == radGps.getId()) {
				locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new TestLocationListener());
			} else if (checkedId == radNetwork.getId()) {
				locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new TestLocationListener());
			}
		}
	}

}


权限:
  <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.BLUETOOTH" />

你可能感兴趣的:(android手机获取gps和基站的经纬度地址)