mLocManager = (LocationManager)mScreen.getSystemService(Context.LOCATION_SERVICE);;        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_LOW);
        String provider = mLocManager.getBestProvider(criteria, true);
        log("provider is :"+ provider);        try {
            if (provider == null) {
                provider = mLocManager.getProviders(true).get(0);
                log("get 0 provider is :"+ provider);
            }
        } catch (IndexOutOfBoundsException e) {        } finally {
            if(provider == null) {
                Toast.makeText(mScreen, "Starting GPS alarm failed.\nNo provider is available.", Toast.LENGTH_LONG).show();
                return;
            }
        }        Location location = mLocManager.getLastKnownLocation(provider);
        mScreen.updateLocation(location);        mLocManager.requestLocationUpdates(provider, 2000, 10,
                this);
这是我的代码.

解决方案 »

  1.   

    我想你可能需要打开硬件GPS。
      

  2.   

    没怎么研究过这一块,我写的是provider  == null
    然后换成  provider = locationManager.NETWORK_PROVIDER;
      

  3.   

    我写的GPS定位,测试过了。LocationManager locationManager=(LocationManager)MylocationActivity.this.getSystemService(Context.LOCATION_SERVICE);
         locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new TestLocationListener());一个监听类
        private class TestLocationListener implements LocationListener
        { @Override
    public void onLocationChanged(Location l)
    {
    // TODO Auto-generated method stub
    textX.setText("X="+l.getLongitude());
    textY.setText("Y="+l.getLatitude()); } @Override
    public void onProviderDisabled(String arg0)
    {
    // TODO Auto-generated method stub

    } @Override
    public void onProviderEnabled(String arg0)
    {
    // TODO Auto-generated method stub

    } @Override
    public void onStatusChanged(String arg0, int arg1, Bundle arg2)
    {
    // TODO Auto-generated method stub

    }
        
        
        }
      

  4.   

    还需要权限哦<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>那个时候做过一次,利用GPS得到坐标,然后利用谷歌的服务。得到地理位置的名称好像百度也有定位API,也可以试试
      

  5.   

    是不是你用定位软件可以得到数据,而用你自己写的程序得不到喽?如果是的话,那是应为你gps没有处于START状态,HAL不会上传数据,而你作用的那个获取gps数据的接口在HAL没有实现,所以你神马都得不到。