我定义了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;
}
答案 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;
}