getSystemService未定义GetLocation的类型

时间:2011-09-19 21:10:26

标签: android

我定义了GetURL方法,以便从网络提供商处找到我的位置,您可以发送以下代码。

如果我使用Activity在我的主类中定义该代码段,这很好用,但是当我想创建一个单独的类(例如GetLocation类)时,我不能使用getSystemService方法并且我在主题中收到错误(getSystemService未定义)对于GetLocation的类型)。关于这个主题有几个条目,但我不完全理解。

这是一个新手问题,所以在回答时考虑到这一点:)谢谢你们。

public String GetURL () {
    LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    String locationProvider = LocationManager.NETWORK_PROVIDER;
    mostRecentLocation = locationManager.getLastKnownLocation(locationProvider);
    if(mostRecentLocation != null) {
        double lat = mostRecentLocation.getLatitude();
        double lng = mostRecentLocation.getLongitude();
        currentLocation = "Lat: " + lat + " Lng: " + lng;
        Log.e("LOCATION -------------", currentLocation + "");
    }
    return currentLocation;
}

1 个答案:

答案 0 :(得分:5)

方法getSystemService()属于Context类。

因此,如果要将getUrl()移动到其他地方成为实用工具方法,则需要传入Context对象,例如当前Activity(因为它继承自{{ 1}})。

例如:
Util.java

Context

<强> MyActivity.java

public static String getUrl(Context context) {
    LocationManager lm = (LocationManager) 
        context.getSystemService(Context.LOCATION_SERVICE);

    // ... your existing code ...
    return currentLocation;
}