<?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>
<---activité->
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()); } } } }
Autorisations :
<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" />
Plus de téléphones Android obtiennent le GPS pour articles liés au code d'implémentation de l'adresse de latitude et de longitude de la station de base, veuillez faire attention au site Web PHP chinois !