如果从设置中关闭位置,则获取位置
Posted
技术标签:
【中文标题】如果从设置中关闭位置,则获取位置【英文标题】:get location if the location is turned off from settings 【发布时间】:2015-07-29 04:58:44 【问题描述】:我需要从 android 设备获取 lat/lng,但限制是我的设备位置已从设置中关闭,用户要求不要打开位置。
那么是否可以从设备获取 lat/lng?
【问题讨论】:
您可以获得最后一个位置,但这不是完美的位置。因此,如果要在应用程序中使用位置,则需要在位置服务上。欲了解更多信息developer.android.com/training/location/retrieve-current.html 如果从设置中启用了位置,则可以使用最后位置,如果不启用,则无法获取最后位置。 【参考方案1】:您必须使用 LocationManager。
阅读Documentation。
编辑:- 抱歉,据我所知没有办法。在用户不想时获取位置,是不可能通过道德手段获得的。
【讨论】:
如果开启了定位服务,则使用定位管理器。【参考方案2】:当位置关闭时调用这个 Intent
startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS),110);
或者当你想获取用户位置时调用这个方法。
public boolean isLocationEnable()
LocationManager locationManager;
if (locationManager == null)
locationManager = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
boolean gps_enabled = false;
try
gps_enabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
catch (Exception ex)
boolean network_enabled = false;
try
network_enabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
catch (Exception ex)
if (!gps_enabled && !network_enabled)
Builder dialog = new AlertDialog.Builder(this);
dialog.setMessage("Activate Location");
dialog.setCancelable(false);
dialog.setPositiveButton("Setting",
new DialogInterface.OnClickListener()
@Override
public void onClick(
DialogInterface paramDialogInterface,
int paramInt)
// TODO Auto-generated method stub
startActivityForResult(
new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS),
110);
);
dialog.setNegativeButton("Cancel",
new DialogInterface.OnClickListener()
@Override
public void onClick(
DialogInterface paramDialogInterface,
int paramInt)
);
dialog.show();
return false;
else
return true;
【讨论】:
以上是关于如果从设置中关闭位置,则获取位置的主要内容,如果未能解决你的问题,请参考以下文章
当我在谷歌设置android中关闭和打开位置时,FusedLocation 不起作用