我刚开始玩android设备,并且从GPS侦听器获取更新时遇到问题。在Android上收集GPS信息的问题
首先,代码,所以你可以检查,如果我做的一切权利:
在AndroidManifest.xml我:
<uses-permission android:name="android.permission.LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
位置监听器被定义为活动的私有成员:
private LocationListener mLocationListener = new LocationListener()
{
@Override
public void onLocationChanged(Location pLocation) {
double lLatitude = pLocation.getLatitude();
double lLongitude = pLocation.getLongitude();
mGpsTextView.setText ("Longitude" + Double.toString(lLongitude) + " Latitude: " + Double.toString(lLatitude));
}
@Override
public void onProviderDisabled(String provider) {
mGpsTextView.setText ("Provider disabled");
}
@Override
public void onProviderEnabled(String provider) {
mGpsTextView.setText ("Provider enabled");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status)
{
case LocationProvider.OUT_OF_SERVICE:
mGpsTextView.setText("GPS out of service");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
mGpsTextView.setText("GPS temorarily unawalible");
break;
case LocationProvider.AVAILABLE:
mGpsTextView.setText("GPS avalible");
break;
default:
mGpsTextView.setText("GPS crazy");
}
}
};
在 “的onResume” 方法我AQUIRE的LocationManager和注册我的听众:
mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mLocationManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0, 0.0f, mLocationListener);
在“的onPause”我删除监听
mLocationManager.removeUpdates(mLocationListener);
然后,当我与地缘修复测试代码的模拟器 - 一切都运行完美。但是当我在手机上部署我的应用程序时,代码无法正常工作。当提供者被禁用时,“mGpsTextView”上的文本是“提供者禁用” - 所以它没问题。但是,当我运行与GPS提供商启用“mGpsTextView”上的文本的应用程序,并没有更新被收回(检查与调试器 - onLocationChanges没有被调用)。
任何想法可能是错误的?
你贴的代码错了位在这里吗?你似乎没有给你的LocationListener任何地方。 – DonSteep 2010-08-28 08:32:30
是的,我只是复制粘贴错误代码 – matekm 2010-08-28 08:36:52
ph,问题可以被关闭 - 我刚离开设备30分钟,它开始reciving更新。廉价手机的魔力... Sory的麻烦;) – matekm 2010-08-28 08:41:06