在Android应用程序中,我编写了代码来通过GPS或网络获取地理数据,其中一个是通过它获取数据。这是我的代码,
public boolean getLocation(Context context, LocationResult result)
{
boolean gps_enabled=false;
LocationManager lm;
boolean network_enabled=false;
this.context = context;
locationResult=result;
Toast.makeText( context,"getLocation()",Toast.LENGTH_SHORT).show();
if(lm == null)
lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
try
{
gps_enabled=lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
catch(Exception ex){}
try
{
network_enabled=lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
}
catch(Exception ex){}
if(!gps_enabled && !network_enabled)
{
Toast.makeText(context, "GPS & Network disabled", Toast.LENGTH_SHORT).show();
return false;
}
}
使用LocationManager
检查GPS&网络是否开启。
如果GPS处于ON状态,则在布尔值gps_enabled中指定为“true”。
但在网络方面,我已经在HTC欲望的Android设备中启动了2G上网,并在移动网络中启用了Switched ON。
布局变量network_enabled
在“开启”状态下分配给“假”网络。
我们是否想更改设备中的任何设置?或者我的代码中有任何错误?
答案 0 :(得分:1)
这取决于可用性:
Location net_loc=null, gps_loc=null;
if(gps_enabled)
gps_loc=lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(network_enabled)
net_loc=lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
NETWORK_PROVIDER:网络位置提供商的名称。该提供商根据蜂窝塔和WiFi接入点的可用性确定位置。通过网络查找检索结果。需要权限android.permission.ACCESS_COARSE_LOCATION或android.permission.ACCESS_FINE_LOCATION。
GPS_PROVIDER: GPS位置提供商的名称。该提供商使用卫星确定位置。根据条件,此提供程序可能需要一段时间才能返回位置修复程序。需要权限android.permission.ACCESS_FINE_LOCATION。