Android位置管理器编译错误

时间:2011-02-04 04:44:41

标签: java android

我正在尝试检索LocationManager类的实例(获取一些GPS相关信息)。我用过写过一个简单的类来做到这一点,但最终给了我一个错误

Cannot make a static reference to the non-static method getSystemService(String) from the type Context

这是我的班级

public class LocationManagerHelper {

    static Location location = null;

    public static Location getLocation () {
        LocationManager manager = (LocationManager) Context.getSystemService(Context.LOCATION_SERVICE);

        if(manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        } else {
            System.out.println("Provider is disabled");
        }
        return location;
    }
}

感谢。

1 个答案:

答案 0 :(得分:10)

错误消息表示您正在使用课程(Context)拨打需要课程实例的电话。

您需要将Context实例传递到getLocation,并使用该Context实例来调用getSystemService

public static Location getLocation (Context context) {
    LocationManager manager = 
        (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
    //....

如果您正在使用活动中的LocationManagerHelper,那么您可以将活动作为上下文传递:

LocationManagerHelper.getLocation(this); // "this" being an Activity instance