如何获得Android的纬度和经度?
如何在android2.3.3中获取当前的纬度和经度?
我尝试遵循这个但我无法运行程序。
我的代码
LatView = (TextView)findViewById(R.id.LatText); LngView = (TextView)findViewById(R.id.LngText); LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); double longitude = location.getLongitude(); double latitude = location.getLatitude();
在android清单中我把它。
请帮忙。 谢谢。
这是我在我的应用程序中找到设备当前位置,它工作正常:
public class MyLocationActivity extends Activity implements LocationListener { private LocationManager mgr; private String best; public static double myLocationLatitude; public static double myLocationLongitude; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mgr = (LocationManager) getSystemService(LOCATION_SERVICE); dumpProviders(); Criteria criteria = new Criteria(); best = mgr.getBestProvider(criteria, true); Log.d("best provider", best); Location location = mgr.getLastKnownLocation(best); dumpLocation(location); //may be some intent here } public void onLocationChanged(Location location) { // TODO Auto-generated method stub dumpLocation(location); } public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override protected void onPause() { super.onPause(); mgr.removeUpdates(this); } @Override protected void onResume() { super.onResume(); mgr.requestLocationUpdates(best, 15000, 1, this); } private void dumpLocation(Location l) { if (l == null) { myLocationLatitude = 0.0; myLocationLongitude = 0.0; } else { myLocationLatitude = l.getLatitude(); myLocationLongitude = l.getLongitude(); } } private void dumpProviders() { List providers = mgr.getAllProviders(); for (String p : providers) { dumpProviders(p); } } private void dumpProviders(String s) { LocationProvider info = mgr.getProvider(s); StringBuilder builder = new StringBuilder(); builder.append("name: ").append(info.getName()); } }
这里MyLocationLatitude和MyLocationLongitude给出了你需要的lat和long的值。
您需要检查最后一个位置是否为空,如果是,那么您向GPS提供商询问新位置,如下所示:
public class Example extends Activity implements LocationListener { LocationManager mLocationManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Location location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if(location != null && location.getTime() > Calendar.getInstance().getTimeInMillis() - 2 * 60 * 1000) { // Do something with the recent location if it is less than two minutes old } else { // Request a new location if necessary mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); } } public void onLocationChanged(Location location) { if (location != null) { // Do something withthe current location // If you only want one location update un-comment this line //mLocationManager.removeUpdates(this); } } public void onProviderDisabled(String arg0) {} public void onProviderEnabled(String arg0) {} public void onStatusChanged(String arg0, int arg1, Bundle arg2) {} }
- 如何在nativescript中使用本机android小部件类型定义?
- 在`Service`类中运行新的`runnableThread`时出现java.lang.ClassCastException
- 编译Jars并将它们添加到android项目中
- SQLiteDatabase getWritableDatabase(){throw new RuntimeException(“Stub!”); }
- 在Android中使用OpenCV将NV21转换为RGB
- 将数据插入SQLite数据库,数据类型不匹配
- 如何使用Android CountDownTimer倒计时
- AccessibilityService在重新启动时停止接收事件
- android.view.InflateException:二进制XML文件行#10:错误膨胀类片段