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 {@Overridepublic 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 {@Overridepublic 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);}@Overridepublic void onProviderDisabled(String provider) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}}private class LocationProvideCheckedlistener implements OnCheckedChangeListener {@Overridepublic 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" />