【发布时间】:2020-02-26 08:42:00
【问题描述】:
在我的 Android 应用程序中,我的目标设备范围为,
最低 Android 版本 - 7.1 (API 25)
目标 Android 版本 - 10.0 (API 29)
我正在使用以下逻辑来获取位置信息
权限使用
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
代码逻辑
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) {
return;
}
try {
gps_loc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
network_loc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
} catch (Exception e) {
e.printStackTrace();
}
if (gps_loc != null) {
final_loc = gps_loc;
latitude = final_loc.getLatitude();
longitude = final_loc.getLongitude();
}
else if (network_loc != null) {
final_loc = network_loc;
latitude = final_loc.getLatitude();
longitude = final_loc.getLongitude();
}
else {
latitude = 0.0;
longitude = 0.0;
}
}
但大多数时候我无法通过 API 调用获得准确的位置。但是如果在设备级别(在电话中)启用以下选项,我将获得最准确的位置
有什么方法可以通过代码在应用程序级别配置上述设置。我正在工作的客户对手动更改配置不满意。
我想知道如何通过代码实现相同的目标。有人请帮忙。
【问题讨论】:
标签: android google-location-services