gpt4 book ai didi

java - `locationManager.isProviderEnabled(locationManager.GPS_PROVIDER);` 始终返回 true

转载 作者:行者123 更新时间:2023-12-01 11:11:43 27 4
gpt4 key购买 nike

我正在测试一个使用位置服务的应用。每当我的位置服务关闭时,它都会返回 null 导致NPE(空指针异常)。经过一番搜索后我发现

    isGPSEnabled = locationManager.isProviderEnabled(locationManager.GPS_PROVIDER);

应该返回正确的 boolean 值,但在测试我的应用程序时,它似乎总是返回true,导致NPE(空指针异常)并且使我的应用程序崩溃。

我还读过this问题。这显然有完全相反的问题并尝试了该解决方案。那也行不通。我正在三星 G5 上进行测试。为什么会出现这种情况。代码有问题还是有其他解决方案来解决我的问题。

这是代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
isGPSEnabled = false;
intentThatCalled = getIntent();
String m2txt = intentThatCalled.getStringExtra("v2txt");
getLocation(m2txt);
}
public void getLocation(String n2txt) {
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
criteria = new Criteria();
bestProvider = String.valueOf(locationManager.getBestProvider(criteria, true)).toString();
location = locationManager.getLastKnownLocation(bestProvider);
isGPSEnabled = locationManager.isProviderEnabled(locationManager.GPS_PROVIDER);
if (isGPSEnabled==true) {
Log.e("TAG", "GPS is on");
latitude = location.getLatitude();
longitude = location.getLongitude();
Toast.makeText(PlacesDecoder.this, "latitude:" + latitude + " longitude:" + longitude, Toast.LENGTH_SHORT).show();
searchNearestPlace(n2txt);
}
}

我还是一个android初学者。请帮忙。

编辑: This问题似乎在相同的硬件型号上有相同的问题。这是硬件错误吗?如果是的话还有没有其他的可能。我还将在另一台设备 Note-4 上进行测试并通知您。

最佳答案

解决您的问题的方法是永远假设您有位置,仅仅因为您的 GPS 已启用并不意味着您将获得位置。

您随时可以获得null位置,因此不必担心 GPS 是否启用,您应该担心返回的位置是否为 null。

getLastKnownLocation() 如果没有最后一个位置,则返回 null

关于java - `locationManager.isProviderEnabled(locationManager.GPS_PROVIDER);` 始终返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32286193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com