1. 代码

package android.test; import java.io.IOException; import java.util.List; import java.util.Locale; import android.app.Activity; import android.content.Context; import android.location.Address; import android.location.Criteria; import android.location.Geocoder; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import android.widget.Toast; import com.google.android.maps.GeoPoint; public class Main extends Activity { private TextView m_textview1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); m_textview1 = (TextView) findViewById(R.id.myTextview1); LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Criteria c = new Criteria(); c.setAccuracy(Criteria.ACCURACY_COARSE); c.setAltitudeRequired(true); c.setBearingRequired(true); c.setCostAllowed(true); c.setPowerRequirement(Criteria.POWER_MEDIUM); String strLocation = locationManager.getBestProvider(c, false); locationManager.requestLocationUpdates(strLocation, 1000, 0, locationListener); } private final LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { // 当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发 // log it when the location changes if (location != null) { Log.i("SuperMap", "Location changed : Lat: " + location.getLatitude() + " Lng: " + location.getLongitude()); // m_curGeoPoint = GetGeoByLocation(location); // m_textview1.setText(GetAddressByGeoPoint(m_curGeoPoint)); // Toast.makeText(Main.this, // GetAddressByGeoPoint(m_curGeoPoint), 100); String str = "SuperMap, Location changed : Lat: " + location.getLatitude() + " Lng: " + location.getLongitude(); m_textview1.setText(str); } } public void onProviderDisabled(String provider) { // Provider被disable时触发此函数,比如GPS被关闭 } public void onProviderEnabled(String provider) { // Provider被enable时触发此函数,比如GPS被打开 } public void onStatusChanged(String provider, int status, Bundle extras) { // Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数 } }; private String GetAddressByGeoPoint(GeoPoint point) { String str = ""; try { if (point != null) { Geocoder coder = new Geocoder(Main.this, Locale.getDefault()); double dGeoLatitude = (int) point.getLatitudeE6() / 1E6; double dGeoLongitude = (int) point.getLongitudeE6() / 1E6; List<Address> addresses = coder.getFromLocation(dGeoLatitude, dGeoLongitude, 1); StringBuilder sb = new StringBuilder(); if (addresses.size() > 0) { Address addr = addresses.get(0); for (int i = 0; i < addresses.size(); ++i) { sb.append(addr.getAddressLine(i)).append("/n"); } sb.append(addr.getLocality()).append("/n"); sb.append(addr.getPostalCode()).append("/n"); sb.append(addr.getCountryName()).append("/n"); str = sb.toString(); } } } catch (IOException e) { e.printStackTrace(); } return str; } private GeoPoint GetGeoByLocation(Location location) { GeoPoint point = null; if (location != null) { double dGeoLatitude = location.getLatitude() * 1E6; double dGeoLongitude = location.getLongitude() * 1E6; point = new GeoPoint((int) dGeoLatitude, (int) dGeoLongitude); } return point; } }

2. AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="android.test" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="7"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> </manifest>

更多相关文章

  1. Android之Camera预览
  2. Android(安卓)Kotlin继承
  3. android中的状态保存
  4. android录像预览功能
  5. Android(安卓)View的构造方法
  6. android 多媒体框架
  7. Android(安卓)onTouchEvent, onClick及onLongClick的调用机制
  8. android GPS定位和卫星个数
  9. 箭头函数的基础使用

随机推荐

  1. android studio导入jar 后产生的 gradle
  2. Android——文件操作
  3. Android(安卓)Studio编译中“png-crunche
  4. Android学习笔记 --- Terms and installa
  5. Android(安卓)uiautomator 使用入门官方
  6. Android的权限permission
  7. android在java代码中绘制矩形框
  8. Android(安卓)ListView(Selector 背景图片
  9. 第12天android:短信发送+测试使用
  10. Mac下获取android studio keystore的SHA1