- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在测试一个使用位置
服务的应用。每当我的位置服务关闭时,它都会返回 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/
我正在编写用于获取手机当前位置(纬度和经度)的代码。无论电话是否提供网络位置服务,我都会 toast 。这个 toast 永远不会出现。另一个问题是,为了使用 Network_location 获取当
您好,我正在开发小型 Android 应用程序,我试图在其中检查网络提供商是否已启用。如果没有,则寻找 GPS 提供商。但在我的情况下,网络提供商总是返回 true。我尝试按照以下方式进行检查
我有这个代码 lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); boolean isGPS = lm.
我有一个应用程序使用网络提供商来定位。每次应用程序启动时,它都会使用 LocationManager 中的 isProviderEnabled() 方法检查网络提供商是否已启用。 如果它返回 fals
在这种情况下,我使用 GPS 作为提供者,我尝试在建筑物内行走,但它似乎找不到位置。是的,在建筑物中 GPS 不起作用是有道理的。那么,为什么 isProviderEnabled 返回 true?无论
我们已经为 Android 实现了基于地理的应用程序,因此我们需要确保始终启用 GPS。问题是 manager.isProviderEnabled( LocationManager.GPS_PROVI
这个问题在这里已经有了答案: How do I find out if the GPS of an Android device is enabled (11 个答案) 关闭 6 年前。 我无法确定
我可以使用 isProviderEnabled() 检查 GPS 是否打开。如果它没有打开,我将启动 Intent 以便用户可以启用 GPS。最后,我再次检查用户是否启用了 GPS。如果用户不启用 G
我正在使用 NETWORK_PROVIDER 获取地点的 latitude 和 longitude。 我已经检查了“位置和安全”中的设置并启用了“使用无线网络”。但是 "isProviderEnabl
我正在测试一个使用位置服务的应用。每当我的位置服务关闭时,它都会返回 null 导致NPE(空指针异常)。经过一番搜索后我发现 isGPSEnabled = locationManager.i
我不知道为什么,但我的可变 isNetowrkEnabled 总是返回 true。我的设备上是否启用互联网并不重要。 这是我的 GPSTracker 类: public class GPSTracke
我正在谷歌地图应用程序中检查 Activity 的互联网连接,并且我想在互联网处于 Activity 状态时执行特定操作,如果互联网处于非 Activity 状态则执行另一个操作。 if(manage
我的应用程序的一位用户报告说,即使他确实打开了应用程序,它也会告诉网络位置信息已关闭。他给我发了一些屏幕截图,它们让我思考; LocationManager.isProviderEnabled(Loc
我试过了 NETWORK_PROVIDER 获取地点的经纬度。 我的测试设备是 LG Optimus G Pro(LG-F240L) Android 4.4.2,API 19。 使用的是Wi-Fi网络
我是一名优秀的程序员,十分优秀!