package zm.Gpsmap;import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;public class GpsmapActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     LocationManager locationManager=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
     Criteria criteria = new Criteria();//获取Gps提供者的标准
     criteria.setAccuracy(Criteria.ACCURACY_FINE);
     criteria.setAltitudeRequired(false);
     criteria.setCostAllowed(false);
     criteria.setBearingRequired(false);
     criteria.setPowerRequirement(Criteria.POWER_LOW);
     String provider=locationManager.getBestProvider(criteria, false);
     Location location=locationManager.getLastKnownLocation(provider);
     LocationListener locationListener=new LocationListener(){ @Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
updateLocation(location);
} @Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
updateLocation(null);
} @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

}
    
     };
locationManager.requestLocationUpdates(provider, 3000, 0, locationListener);
updateLocation(location);
     //System.out.println("纬度为:"+location.getLatitude());
    
    } private void updateLocation(Location location) {
// TODO Auto-generated method stub
 double la=location.getLatitude();
 double lo=location.getLongitude();
 System.out.println("纬度为:"+la);
}
}
自己写的一个GPS定位的程序,不知道为什么老是出现应用程序异常,求高人啊

解决方案 »

  1.   

    我已经在配置文档里加入权限了<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
      

  2.   

    首先确认你的GPS是否已经开启,你是用的真机还是模拟器?
     Criteria criteria = new Criteria();//获取Gps提供者的标准
      criteria.setAccuracy(Criteria.ACCURACY_FINE);
      criteria.setAltitudeRequired(false);
      criteria.setCostAllowed(false);
      criteria.setBearingRequired(false);
      criteria.setPowerRequirement(Criteria.POWER_LOW);
      String provider=locationManager.getBestProvider(criteria, false);
    你使用了上述代码来获取provider,你能确定获取的是gps provider吗?如果不能,则有可能使用Network定位,而模拟器不能实现Network定位,不知是不是由于这个原因导致异常,我曾经遇到过这个问题,希望对你有所帮助