Articles of locationmanager

onLocationChanged不会自动调用

我在Android中的onLocationChanged事件有问题。 这是触发: case R.id.start: { Points.add(overlay.getMyLocation()); // Points’ type is ArrayList mgr.requestLocationUpdates(best, 0, 3, locationListener); } break; 这是onLocationChanged方法: public void onLocationChanged(Location location) { i++; Points.add(overlay.getMyLocation()); MapOverlay mapOverlay = new MapOverlay(Points.get(i-1), Points.get(i)); map.getOverlays().add(mapOverlay); //does the drawing mMapController.animateTo(Points.get(i)); } 因此,onLocationChanged仅在我按“start”后调用一次。 它应该在每次位置发生变化时自动调用,对吗? 就我而言,事实并非如此。 请帮帮我。

检查用户是否在提示后启用了GPS

干净利落。 我启动一项活动并检查手机是否启用了GPS模块。 如果没有启用,我会通过对话框提示用户,并询问他是否要手动启用它。 在是,我激活位置设置。 现在用户可以根据需要启用它,但我需要检查他做了什么。 try { isGPSEnabled = locationManager .isProviderEnabled(LocationManager.GPS_PROVIDER); } catch (Exception ex) {} if (isGPSEnabled) { locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, locationListenerGps); } else { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage( “Your GPS module is disabled. Would you like to enable it ?”) .setCancelable(false) .setPositiveButton(“Yes”, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int […]

在不使用gps或互联网的情况下获取用户的当前位置名称,但在android中使用Network_Provider

这个问题与“ Android:在不使用gps或互联网时获取用户的当前位置 ”相同的主流stackoverflow问题直接相关,其中接受的答案实际上没有回答问题。 我应该能够通过网络提供商而不是GPS或互联网获取设备的当前位置名称(例如:城市名称,村庄名称)。 以下是该问题中接受的答案。 (以下代码部分应包含在onCreate()方法中) // Acquire a reference to the system Location Manager LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); // Define a listener that responds to location updates LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { // Called when a new location is found by the network location provider. makeUseOfNewLocation(location); } […]

isProviderEnabled(LocationManager.NETWORK_PROVIDER)返回false

我正在使用NETWORK_PROVIDER获取该地点的latitude和longitude 。 我已经检查了“位置和安全性”中的设置并启用了“使用无线网络”。 但是”isProviderEnabled(LocationManager.NETWORK_PROVIDER)”始终返回false 。 谁能帮我? 先谢谢你! 这是我的代码: LocationManager locManager=(LocationManager) getSystemService(Context.LOCATION_SERVICE); boolean isEnableGPS=locManager.isProviderEnabled(LocationManager.GPS_PROVIDER); boolean isEnableNTW=locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); Log.d(TAG, isEnableGPS+”, “+isEnableNTW); AndroidMainfest.xml中的权限

如何在Fragment中获取对LocationManager的引用

我有一个扩展Fragment的类并实现了LocationListener。 当我写作 LocationManager myLocalManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 我得到编译时错误,因为方法getSystemService不是Fragment的方法。 我可以做些什么来创建LocationManager ?

onLocationChanged()从未调用过

我正在编写一个带来当前位置的代码,但它没有给我这个位置,因为它从不调用onLocationChanged() 。是否有任何方法可以find该位置。 对于这种情况,mobileLocation将为0,因此执行将转到else块。 我的代码是 public class FindLocation { private LocationManager locManager; private LocationListener locListener; private Location mobileLocation; private String provider; public FindLocation(Context ctx){ locManager = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE); locListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) […]

getSystemService()如何正常工作?

乍一看下面的代码中,在onCreate(…)完成后, mLocationManager对象应该超出范围,并且预期的行为是onLocationChanged永远不会被调用或调用几次,直到对象被垃圾回收。 但是, getSystemService返回的对象似乎是单例,它存在于MainActivity的范围之外(因为它是一个系统服务,所以恰当如此)) 在进行堆转储并使用Eclipse Memory Analyzer完成后,似乎ContextImpl保留了对LocationManager实例的引用。 在内存转储中有两个对LocationManager对象的引用,而在代码中显然只有一个,这意味着在其他地方创建了另一个引用。 我的问题是: 在调用以下实现时,是否有人完整地描述了正在发生的事情: public abstract Object getSystemService(String name); 是一个懒惰创建的单例返回的对象,创建/保留引用的确切位置是什么? package com.neusoft.bump.client.storage; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.v(“TAG”, “STARTED”); LocationManager mLocationManager = (LocationManager) this […]

GPS Android – 只定位一次

有没有办法访问GPS一次,而不是有一个不断检查位置更新的looper? 在我的场景中,我感兴趣的是find当前的坐标而不是与GPS卫星的连续连接。 有没有人有任何想法如何做到这一点? 提前致谢。

如何阻止位置经理?

不知道为什么,但有时候在关闭应用程序后,LocationManager仍然有效。 我在一个Activity中调用onCreate-Methode中的startGPS()(只有一个,我称之为StartActivity)。 protected void startGPS() { try { lmanager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); lmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this); lmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); } catch(Exception e) { e.printStackTrace(); } } 如果此活动将被销毁(因此,当应用程序将关闭时),我调用endGPS() public void endGPS() { try { lmanager.removeUpdates(this); lmanager=null; } catch(Exception e) { e.printStackTrace(); } } 一些想法,一些建议,我做错了什么?!

运行时错误 – java.lang.IllegalArgumentException:provider = gps

我从创build的Android应用程序的用户日志中得到这个错误。 到目前为止,我一直无法复制这个错误。 任何帮助将非常感激。 错误是: java.lang.IllegalArgumentException: provider=gps at android.os.Parcel.readException(Parcel.java:1326) at android.os.Parcel.readException(Parcel.java:1276) at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:646) at android.location.LocationManager._requestLocationUpdates(LocationManager.java:582) at android.location.LocationManager.requestLocationUpdates(LocationManager.java:446) at com.myApp.service.DeviceManager$7.handleMessage(DeviceManager.java:470) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3835) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641) at dalvik.system.NativeStart.main(Native Method) 它引用的设备pipe理器位置是: private final Handler uihandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case […]