2014-12-04 4 views
0

Kitkat 4.4.4를 실행하는 TI OMAP 플랫폼이 있습니다. 플랫폼에는 Wi-Fi/GPS/셀룰러 연결이 없지만 이더넷이 있습니다. eth1을 사용하여 인터넷에 액세스합니다.이더넷에서 Android 장치 위치

어쨌든 eth1을 기반으로하는 장치의 대략적인 지리적 위치를 결정할 수 있습니까? 아래 샘플 코드를 시도했지만 이더넷 연결에 실패합니다.

/** Check if we can get our location */ 
public void checkLocation(){ 
    // Get the location manager 
    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    String locationProvider = LocationManager.NETWORK_PROVIDER; 

    try{ 
     // Define a listener that responds to location updates 
     locationListener = new LocationListener() { 
      public void onLocationChanged(Location location) { 
       Log.d(TAG,"Latitude: " + location.getLatitude() + ", Longitude = " + location.getLongitude()); 
      } 

      public void onStatusChanged(String provider, int status, Bundle extras) {Log.d(TAG,"location found 1");} 

      public void onProviderEnabled(String provider) {Log.d(TAG,"location found 2");} 

      public void onProviderDisabled(String provider) {Log.d(TAG,"location found 3");} 
     }; 

     locationManager.requestLocationUpdates(locationProvider, 0, 0, locationListener); 
    }catch(Exception e){ 
     Log.e(TAG, "Location Exception: " + e.getMessage()); 
    } 
} 

위의 코드는 이더넷에 대해 provider doesn't exist: network 예외를 throw합니다. Wi-Fi/GPS 장치에서 정상적으로 작동합니다.

또한 매니페스트 파일에 다음 권한을 설정했습니다.

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

이더넷 연결을 사용하는 경우 위치를 결정하는 방법에 대한 아이디어가 있으십니까? 당신은 당신의 네트워크 또는 GPS의 사용 가능 여부를 확인하기 위해

locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 

locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) 

을 사용할 수 있습니다

감사

답변

2

. 이 두 함수가 false를 반환하면 locationManager를 사용하여 위치를 찾을 수 없습니다.