2012-09-05 51 views
3

我有一个android应用程序,我想获取位置。Android GPS onLocationChanged从来没有叫

为此我遵循android文档,但它不起作用。 onLocationChanged方法永远不会被调用。

public class GPSTestActivity extends Activity 
{ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 

    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) 
    { 
     Toast.makeText(this, "GPS available", 3000).show(); 
    } 
    else 
    { 
     Toast.makeText(this, "GPS not available", 3000).show(); 
    } 

    LocationListener locationListener = new LocationListener() 
    { 
     public void onLocationChanged(Location location) 
     { 
      System.out.println("RECEIVED LOCATION"); 
     } 

     public void onStatusChanged(String provider, int status, Bundle extras) 
     { 
     } 

     public void onProviderEnabled(String provider) 
     { 
     } 

     public void onProviderDisabled(String provider) 
     { 
     } 


    }; 

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 
} 
} 

在AndroidManifest.mf我已经包括permision:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

我试图测试与DDMS控制台模拟器中的应用。我设置了经度和纬度,然后按下发送按钮,但不调用onLocationChanged方法。

我在做什么错了?

预先感谢

+0

设置模拟位置的权限在AndroidManifest.xml文件的模拟位置 – Pratik

+0

谢谢,但我已经添加了模拟位置权限,但它不工作 – Eduardo

+0

尝试'Override'你的方法'onLocationChanged','onStatusChanged',' onProviderEnabled'和'onProviderDisabled'。 – Deepak

回答

0

我发现这个问题。

我正在测试Android 2.3.3。并有一个错误。使用Google API进行测试(级别10)非常完美。

0

放PARMS的号召:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10f, locationListener); 
+0

谢谢,但我已经把参数,它不起作用 – Eduardo