如下代码片段
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tView=(TextView)findViewById(R.id.showLocation);
lManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
String bestProvider=lManager.getBestProvider(getCriteria(), true);
if(bestProvider!=null)
{
Location location=lManager.getLastKnownLocation(bestProvider);
// updateView(location);
lManager.requestLocationUpdates(bestProvider, 5000, 8, llListener);
updateView(location);
}
}
每次执行到标红代码的时候,发现provider都是空值
出现这个问题很可能是权限问题,在manifest文件写入
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permisstion.ACCESS_FINE_LOCATION"/>
发现问题还是没有消除,此时最好是重启一下设备,然后重新调试,问题消除
在Android应用中,使用LocationManager的getBestProvider方法获取位置提供者时遇到返回空值的困扰。检查了权限设置,包括INTERNET、ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION,但问题依旧存在。尝试重启设备后,问题得到解决。确保在manifest文件正确声明权限,并在必要时考虑设备状态对定位服务的影响。
2338





