2016-04-11 44 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 –