Java Can';无法获取我的应用程序上一个已知位置的当前位置
我有一个无法接收任何位置的应用程序。我必须等一天才能得到当前或最后已知的位置。请帮忙 此应用程序就像carousell买卖应用程序一样,需要日志和lat才能获取位置 下面是我的代码。我不擅长编程。还在学习。谢谢Java Can';无法获取我的应用程序上一个已知位置的当前位置,java,Java,我有一个无法接收任何位置的应用程序。我必须等一天才能得到当前或最后已知的位置。请帮忙 此应用程序就像carousell买卖应用程序一样,需要日志和lat才能获取位置 下面是我的代码。我不擅长编程。还在学习。谢谢 // MARK: - GET CURRENT LOCATION ------------------------------------------------------ protected void getCurrentLocation() { Criteria criter
// MARK: - GET CURRENT LOCATION ------------------------------------------------------
protected void getCurrentLocation() {
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_LOW);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
assert locationManager != null;
String provider = locationManager.getBestProvider(criteria, true);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
currentLocation = locationManager.getLastKnownLocation(provider);
if (currentLocation != null) {
getCityCountryNames();
// Try to find your current Location one more time
} else {
locationManager.requestLocationUpdates(provider, 1000, 0, this);
}
}
@Override
public void onLocationChanged(Location location) {
if (PermissionsUtils.hasPermissions(this, locationPermissions)) {
return;
}
locationManager.removeUpdates(this);
currentLocation = location;
if (currentLocation != null) {
getCityCountryNames();
// NO GPS location found!
} else {
Configs.simpleAlert(getString(R.string.get_location_failure), AdsListActivity.this);
// Set New York City as default currentLocation
currentLocation = new Location("provider");
currentLocation.setLatitude(Configs.DEFAULT_LOCATION.latitude);
currentLocation.setLongitude(Configs.DEFAULT_LOCATION.longitude);
// Set distance and city labels
String distFormatted = String.format("%.0f", distanceInMiles);
distanceTxt.setText(getString(R.string.ads_list_distance_formatted, distFormatted));
cityCountryTV.setText(getString(R.string.not_available_text_placeholder));
// Call query
queryAds();
}
}
“无法接收位置”是什么意思?是否有任何错误?此应用程序将显示具有我当前位置的应用程序。但它不起作用。一片空白。请参阅此处的屏幕截图,但只有在
currentLocation==null
时才更新视图,因为这是onLocationChanged
读取的内容。由于您也在其中分配了当前位置,所以它只会是null
一次。我不确定默认位置是什么,或者ads\u list\u distance\u formatted
格式是什么,但这部分看起来肯定不对。您还可以在第一次收到后停止对location manager的更新,so-o-o…下面是代码:String distFormatted=String.format(“%.0f”,distanceInMiles);distanceTxt.setText(getString(R.string.ads_list_distance_formatted,distFormatted));刚刚注意到:在onLocationChanged
的第一行,你说如果你的应用程序被授予了位置权限,你什么都不想做。这一定是应用程序没有做任何事情的原因。你所说的“无法接收位置”是什么意思?是否有任何错误?此应用程序将显示具有我当前位置的应用程序。但它不起作用。一片空白。请参阅此处的屏幕截图,但只有在currentLocation==null
时才更新视图,因为这是onLocationChanged
读取的内容。由于您也在其中分配了当前位置,所以它只会是null
一次。我不确定默认位置是什么,或者ads\u list\u distance\u formatted
格式是什么,但这部分看起来肯定不对。您还可以在第一次收到后停止对location manager的更新,so-o-o…下面是代码:String distFormatted=String.format(“%.0f”,distanceInMiles);distanceTxt.setText(getString(R.string.ads_list_distance_formatted,distFormatted));刚刚注意到:在onLocationChanged
的第一行,你说如果你的应用程序被授予了位置权限,你什么都不想做。这一定是应用程序没有做任何事情的原因。