【发布时间】:2013-11-28 19:17:28
【问题描述】:
我正在开发一个应用程序,该应用程序使用 LocationManager 和 LocationListener 来显示纬度和经度。在运行该应用程序时,会显示一条错误消息“抱歉,进程系统没有响应。”。当我从 DDMS 下的模拟器控制或使用 telnet 从命令提示符手动提供 lat 和 long 时,就会发生这种情况。
Java 代码:
public class LocationFinder extends Activity {
private LocationManager locManager;
private LocationListener locListener;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locListener = new MyLocationListener();
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
}
private class MyLocationListener implements LocationListener{
@Override
public void onLocationChanged(Location loc) {
// TODO Auto-generated method stub
if(loc != null){
Toast.makeText(getBaseContext(), "Latitude: " + loc.getLatitude() + "Longitude: " + loc.getLongitude(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
}
并且我在 manifest.xml 中设置了以下权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
模拟器也启用了 hw.gps。
我想知道我的代码是否有问题。 谢谢
【问题讨论】:
-
不知道确切但尝试将 Toast.makeText()... 中的第一个参数更改为 getApplicationContext().....
-
删除 MyLocationListener 中的 @Overrides 有影响吗?