如果 GPS 被禁用,位置将无法进入三星手机
Posted
技术标签:
【中文标题】如果 GPS 被禁用,位置将无法进入三星手机【英文标题】:Location is not getting in samsung phone if GPS is disabled 【发布时间】:2013-07-19 15:24:57 【问题描述】:我使用三星手机通过 LocationManager API 获取位置,如果禁用 GPS,我无法获取位置,通过网络提供商我无法获取位置。
这是代码,这在 HTC 和索尼甚至禁用 GPS 时都能正常工作,但在三星手机中却不行。
public Location getLocation()
try
mLocationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
// getting GPS status
isGPSEnabled = mLocationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
// getting network status
isNetworkEnabled = mLocationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER); //fails in samsung phone returns NULL
if (isGPSEnabled == false && isNetworkEnabled == false)
// no network provider is enabled
else
this.canGetLocation = true;
if (isNetworkEnabled)
mLocationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (mLocationManager != null)
mLocation = mLocationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
// if GPS Enabled get lat/long using GPS Services
if (isGPSEnabled)
if (mLocation == null)
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (mLocationManager != null)
mLocation = mLocationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
catch (Exception e)
e.printStackTrace();
return mLocation;
【问题讨论】:
您的网络提供商启用了吗? 【参考方案1】:这种行为是三星手机独有的。 HTC你不会遇到这个问题。
您必须启动 locationManager,因为默认情况下它会查看 google maps 缓存并且不关心缓存对于当前位置信息的陈旧程度。执行此操作,启动您的应用程序,形成不同的 gps 位置并注意它仍然显示旧位置。现在启动谷歌地图,然后重新启动你的应用程序,你的位置就会改变。要以编程方式启动您的应用程序以获取“当前位置”,请在调用 getLastKnownLocation
之前运行以下代码
YOUR_APPLICATION_CONTEXT.getLocationManager().requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener()
@Override
public void onStatusChanged(String provider, int status, Bundle extras)
@Override
public void onProviderEnabled(String provider)
@Override
public void onProviderDisabled(String provider)
@Override
public void onLocationChanged(final Location location)
);
【讨论】:
以上是关于如果 GPS 被禁用,位置将无法进入三星手机的主要内容,如果未能解决你的问题,请参考以下文章