2016-04-11 41 views
0

我需要在我的Android应用程序中设置GPS。但需要funcion requestLocationUpdates检查perrmision这样:检查perrmision(gps)需要停止功能

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不会被调用!

如何解决?

回答

2

您不能致电requestLocationUpdates只需requestPermissions

requestPermissions是一个异步调用,“本”(你的活动)是你的听众

您的活动来实现:

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

在这种fonction检查,如果许可被接受如果为TRUE,则调用requestLocationUpdates。

+0

我在我的代码中有onRequestPermissionResult。但是,如果我将.requestLocationUpdates移动到PERMISSION_GRANTED部分。我再次获得错误检查perrmision;/ – user6145907

+0

如果您仔细阅读文档,则不能犯任何错误:http://developer.android.com/training/permissions/requesting.html –