2010-08-28 49 views
1

我刚开始玩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没有被调用)。

任何想法可能是错误的?

+1

你贴的代码错了位在这里吗?你似乎没有给你的LocationListener任何地方。 – DonSteep 2010-08-28 08:32:30

+0

是的,我只是复制粘贴错误代码 – matekm 2010-08-28 08:36:52

+0

ph,问题可以被关闭 - 我刚离开设备30分钟,它开始reciving更新。廉价手机的魔力... Sory的麻烦;) – matekm 2010-08-28 08:41:06

回答

0

为什么使用Sensor.TYPE_ACCELEROMETER?

应该是这样的:

notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 100.0f, locationListener); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0.0f, locationListener); 
+0

是的,我只是复制粘贴错误的代码 – matekm 2010-08-28 08:37:42