我尝试在Android下为我的应用程序获取GPS位置失败。我想知道我可能做错了什么。到目前为止我尝试以下方法:Android GPS应用程序无法在模拟器上工作
- Get GPS Location instantly via Android app
- http://www.javacodegeeks.com/2010/09/android-location-based-services.html
- http://about-android.blogspot.de/2010/04/find-current-location-in-android-gps.html
以及许多其他人,但一切都是徒劳。
考虑到所有的解决方案,上述工作过一段或其他人,我会用这一个调试:
package my.namespace;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class HomeActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}
private class mylocationlistener implements LocationListener {
public void onLocationChanged(Location location) {
if (location != null) {
Log.d("LOCATION CHANGED", location.getLatitude() + "");
Log.d("LOCATION CHANGED", location.getLongitude() + "");
Toast.makeText(HomeActivity.this,
location.getLatitude() + "" + location.getLongitude(),
Toast.LENGTH_LONG).show();
}
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
}
有@override
注释的3种方法onProviderDisabled
,onProviderEnabled
和onStatusChanged
。我不得不删除它们,因为Eclipse给出了这些方法不覆盖超类的错误。
我在清单文件(ACCESS_FINE_LOCATION
,ACCESS_MOCK_LOCATION
,ACCESS_COARSE_LOCATION
和INTERNET
)中添加了权限。
有没有人有一个想法,我可能会做错什么?
编辑: 在模拟器中运行(Android 2.2的API 8)
谢谢你的答复。我不认为我可以添加NETWORK_PROVIDER,因为我正在模拟器上进行测试。我已经将GPS_PROVIDER作为参数传递给requestLocationUpdates方法。 – gkris 2012-04-26 11:27:55
意味着您正在emmulator中测试您的基于gps的应用程序? – MAC 2012-04-26 11:31:44
是的,但如果你愿意,你可以使用这两个提供者。无论如何,如果你正在模拟器上测试它,你是否通过模拟位置修复?无论是从命令行还是从eclipse。因为在模拟器上,只有在模拟位置修复时,应用才会获得位置更新。 – binW 2012-04-26 11:31:45