我正在尝试检索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;
}
}
感谢。
答案 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