2011-02-26 3 views
4

GPS를 사용하여 사용자 위치를 찾는 응용 프로그램을 개발했습니다.Wifi를 사용할 때 현재 위치 찾기가 작동하지만 GPS를 사용할 때 실패 함

여기에는 오류가 없습니다. 그것은 Wi-Fi를 사용하여 위치를 정확하게 찾았지만 GPS 모드에서는 값을 반환하지 않습니다. 매니페스트에 필요한 권한을 추가했는데 GPS가 켜져 있습니다.

누군가 Gps를 사용하여 위치를 알려주시겠습니까?

내가 포함했다 여기 내 코드 :

package c.g.a.loation; 

public class UseGps extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     LocationListener mlocListener = new MyLocationListener(); 
     mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, 
       mlocListener); 
    } 

    /* Class My Location Listener */ 
    public class MyLocationListener implements LocationListener { 

     @Override 
     public void onLocationChanged(Location loc) { 
      Geocoder gp = new Geocoder(getBaseContext()); 
      try { 
       ArrayList<Address> address = (ArrayList<Address>) gp 
         .getFromLocation(loc.getLatitude(), loc.getLongitude(), 
           1); 
       if (address != null && address.size() > 0) { 
        Toast.makeText(getBaseContext(), address.get(0).toString(), 
          Toast.LENGTH_LONG).show(); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

     @Override 
     public void onProviderDisabled(String provider) {} 

     @Override 
     public void onStatusChanged(String arg0, int arg1, Bundle arg2) {} 

     @Override 
     public void onProviderEnabled(String arg0) {} 
    } 

    public void onProviderEnabled(String provider) { 
     // Toast.makeText(
     // getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show(); 
    } 

    public void onStatusChanged(String provider, int status, Bundle extras) {} 
} 

답변

0

내가이 생각을 ...

귀하의 코드는 GPS 공급자가 활성화되어 있는지 확인하기 위해 확인되지 않은
  1. . 주석 처리 된 코드가 모든 공급자가 활성화되었을 때 토스트를 보내지 만 GPS 공급자가 onCreate()에서 활성화되어 있는지 확인할 수 있습니다.

  2. 얼마나 오래 GPS 위치를 얻으려고하십니까? GPS_PROVIDER는 GPS 수정 사항을 가져 오는 데 약간의 시간이 걸릴 수 있습니다. 나는 2 분 넘게 TTFF (주먹 수정 시간) 값을 보았습니다. 설상가상으로, 안드로이드와 다른 장치에서 서로 다른 TTFF 차이점을 보았습니다.

또 다른 앱에서 GPS 수정 프로그램을 가져 오는 것이 좋습니다. 일반적으로 Google지도 또는 GPS 상태 (시장에서 무료)를 실행하여 GPS 수정 프로그램을받는 데 걸리는 시간을 확인합니다. Google지도를 사용하려면 NETWORK_PROVIDER의 위치뿐만 아니라 화면 상단의 GPS 아이콘이 깜박임을 멈추게해야합니다.

관련 문제