public void statusCheck() {
final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
Intent intent = new Intent(MainActivity.this, NewActivity.class);
buildAlertMessageNoGps();
}
while(manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && i<2)
{
getLocationPermission();
i++;
}
}
这是我的密码。现在,如果位置权限未启用,将出现一个警报对话框,用户可以通过该对话框进行设置以启用该权限。但是,当他们返回时,getlocationpermission()
未运行,因此应用程序无法运行。如何使应用程序在用户启用位置权限返回后自动调用getlocationpermission()
?为什么我的代码不工作,为什么在用户manager.isProviderEnabled(LocationManager.GPS_PROVIDER)
为true后它不会调用getLocationpermission
。
我认为连接GPS需要更多的时间,尝试使用布尔值。
示例:
while(!GpsWorking)
{
getLocationPermission();
}
publick void getLocationPermission()
{
//if gps working
GpsWorking = true;
}
简单地说,你将调用该方法,直到你得到位置
一旦接收到位置,while(!GpsWorking(将退出