【发布时间】:2012-05-06 23:23:34
【问题描述】:
我没有成功尝试让 GPS 位置在 Android 下为我的应用程序工作。我想知道我可能做错了什么。到目前为止,我已经尝试了以下方法:
- 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) {
}
}
}
onProviderDisabled、onProviderEnabled 和 onStatusChanged 三种方法都有 @override 注释。我不得不删除它们,因为 Eclipse 给出了这些方法没有覆盖超类的错误。
我已在清单文件中添加了权限(ACCESS_FINE_LOCATION、ACCESS_MOCK_LOCATION、ACCESS_COARSE_LOCATION 和 INTERNET)。
有人知道我做错了什么吗?
编辑: 在模拟器上运行(Android 2.2 API 8)
【问题讨论】: