Android 检查perrmision(gps)是否需要停止功能

Android 检查perrmision(gps)是否需要停止功能,android,android-gps,Android,Android Gps,我需要在我的Android应用程序中设置gps。但是Function requestLocationUpdates需要通过以下方式进行检查: locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageMan

我需要在我的Android应用程序中设置gps。但是Function requestLocationUpdates需要通过以下方式进行检查:

    locationManager = (LocationManager) getSystemService(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.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);
        return;
    }
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
如果我删除返回(从If)应用程序崩溃。如果我放置返回函数requestLocationUpdates,则不会调用

如何修复它?

您不能在requestPermissions之后调用RequestLocationUpdate

requestPermissions是一个异步调用,“this”(您的活动)是您的侦听器

您必须在活动中实施:

 @Override
 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
      //check if all the grantResult are equal to PackageManager.PERMISSION_GRANTED
 }
在该功能中,检查权限是否被接受,如果为TRUE,则调用RequestLocationUpdate。

您不能在requestPermissions之后调用RequestLocationUpdate

requestPermissions是一个异步调用,“this”(您的活动)是您的侦听器

您必须在活动中实施:

 @Override
 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
      //check if all the grantResult are equal to PackageManager.PERMISSION_GRANTED
 }

在该功能中,检查权限是否被接受,如果为TRUE,则调用您的RequestLocationUpdate。

我的代码中有onRequestPermissionResult。但如果我移动.requestLocationUpdates到已授予的部分权限。再次获得错误检查命令/如果您仔细阅读文档,就不会犯任何错误:我的代码中有onRequestPermissionResult。但如果我移动.requestLocationUpdates到已授予的部分权限。再次获得错误检查命令/如果您仔细遵循文档,就不会犯任何错误: