以太网的Android设备位置

时间:2014-12-04 15:14:51

标签: android geolocation location ethernet

我有一个运行Kitkat 4.4.4的TI OMAP平台。该平台没有Wifi / GPS /蜂窝连接,但它有以太网。我使用eth1访问互联网。

无论如何都要根据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异常。在带有wifi / 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" />

如果设备具有以太网连接,如何确定位置的任何想法?

由于

1 个答案:

答案 0 :(得分:2)

您可以使用

locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 

locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)

检查您的网络或gps的可用性。如果这两个对您返回false,那么您可能无法使用locationManager来查找位置。