我是安卓新手。因此,如果我的问题很简单,请道歉并帮助我。
我正在开发一个 android 应用程序,我在其中尝试仅使用 GPS 服务获取用户位置(因为我正在开发一个即使没有互联网也需要在 android 设备中运行的应用程序)。
我的代码如下:
我的活动:
public class MyView extends Activity implements OnClickListener, Runnable
{
LocationManager itsLocationManager;
LocationListener itsLocationListener;
@Override
protected void onCreate(Bundle savedInstanceState)
{
itsLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
itsLocationListener = new MyLocationListener(this, itsLocationManager);
getLocationAndSendMessage();
}
private void getLocationAndSendMessage()
{
try
{
itsLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, itsLocationListener);
}
catch (Exception theException)
{
theException.printStackTrace();
ToastMsgUtil.showErrorMessage("Problem in retrieving your current location! Please try again.", this);
}
}
MyLocationListener.java:
public class MyLocationListener implements LocationListener
{
Context itsContext;
LocationManager itsLocationManager;
public MyLocationListener(Context theContext, LocationManager theLocationManager)
{
itsContext = theContext;
itsLocationManager = theLocationManager;
}
@Override
public void onLocationChanged(final Location theLocation)
{
//My Location processing code
itsLocationManager.removeUpdates(SafemateLocationListener.this);
}
}
AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
正如我上面所说,我只需要通过 GPS 获取位置(因为用户移动设备中没有互联网)。
- 在调试时,我发现当我使用LocationManager.GPS_PROVIDER时,我没有在onLocationChanged方法中收到任何位置更新。
- 但是,当我尝试使用LocationManager.NETWORK_PROVIDER时,我会收到位置更新。
谁能说出我在上面的代码中做错了什么?我错过了什么吗?
请帮忙。谢谢你。