2016-05-27 11 views
0

私は、Locationのような "危険なアクセス許可"のためにアンドロイドでランタイムパーミッションを要求する方法を理解しようとしています。Android - 実行時のパーミッションを要求する

何私が理解する事があるコードは、この

public void checkPermission(){ 
    if (ActivityCompat.checkSelfPermission(..) == PackageManager.PERMISSION_GRANTED){ 

    getLocation(); 

    } else { 

    ActivityCompat.requestPermissions(..); 

    } 
} 

public void onRequestPermissionsResult(..){ 
    switch (requestCode) { 
    case MY_PERMISSIONS_REQUEST: { 
     if (..) { 
       // permission was granted, yay! 
       getLocation(); 
      } else { 
       // permission denied, boo! 
      } 
      return; 
     } 
    } 
} 

public Location getLocation(){ 
    locationManager.requestLocationUpdates(..) 
    .. 
} 

のように行くべきであるということです、このコードは私が場所の許可

を要求する必要が私に言ってくれlocationManagerにエラーを与えだから何ですこのシーケンスでプロンプト?

答えて

0

それは私のために働いた、これを試してみてください

private void checkPermission() { 
    if (ContextCompat.checkSelfPermission(this, 
      Manifest.permission.ACCESS_FINE_LOCATION) 
      != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this, 
      Manifest.permission.ACCESS_COARSE_LOCATION) 
      != PackageManager.PERMISSION_GRANTED) { 

     ActivityCompat.requestPermissions(this, 
       new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION}, 
       MY_PERMISSIONS_REQUEST_FINE_LOCATION); 

    } else { 
     getLocation(); 
    } 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, 
             String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case MY_PERMISSIONS_REQUEST_FINE_LOCATION: { 
      // If request is cancelled, the result arrays are empty. 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       // permission was granted, yay! Do the 
       // contacts-related task you need to do. 
      getLocation(); 
      } else { 
       // permission denied, boo! Disable the 
      } 
      return; 
     } 
    } 
} 
+0

あなたのコードが正しいか、と私はlocationMangerを使用してみたときに鉱山があまりにも、しかし、私の問題は、それが許可 –

+0

のために再度尋ね、getLocationメソッドであります@ Ahmad Bassiounyうん、それは尋ねる – Nisarg

関連する問題