Android 선언 권한

3329 단어
AndroidManifest에 권한을 추가하려면 어떻게 합니까?
요소를 최상위 요소의 자 피쳐로 만듭니다.예를 들어 문자 메시지를 보낼 수 있는 권한은 다음과 같은 코드 행을 AndroidManifest에 추가할 수 있습니다.


        

        
            ...
        

    

일반 및 위험 권한
  • 정상적인 권한은 응용 프로그램이 샌드박스 외부 데이터나 자원을 방문하는 것을 포함하지만 사용자의 프라이버시나 다른 응용 프로그램에 대한 조작 위험이 매우 적은 구역, 예를 들어 시간대 권한을 얻는 것을 포함한다.
  • 위험 권한은 사용자의 프라이버시 정보와 관련된 데이터나 자원을 응용하거나 사용자가 저장한 데이터나 다른 응용 프로그램의 조작에 영향을 미칠 수 있는 구역을 포함한다.사용자 연락처를 읽는 것은 위험한 권한입니다.

  • 시스템 버전 및 선언 권한에 대한 targetSdkVersion 적용
  • 장치가 안드로이드 5.1 또는 더 낮은 버전에서 실행되거나 targetSdkVersion이 22 이상일 경우 목록에 위험 권한이 열거되어 있으면 사용자는 설치할 때 이 권한을 부여하고 사용자가 이 권한을 부여하지 않으면 시스템은 응용 프로그램을 설치하지 않습니다.
  • 장치가 안드로이드 6.0 이상 버전에서 실행되거나 targetSdkVersion이 23 이상이면 목록에 권한을 표시해야 하며, 실행할 때 필요한 모든 위험 권한을 요청해야 합니다.사용자는 모든 권한을 부여하거나 거부할 수 있으며, 사용자가 권한 요청을 거부하더라도 제한된 기능을 계속 실행할 수 있습니다.

  • 권한 확인
    권한이 있는지 확인하려면 ContextCompat을 호출합니다.checkSelfPermission() 방법입니다.예를 들면 다음과 같습니다.
      /* 
        *         ,     PackageManager.PERMISSION_GRANTED
        *          ,     PackageManager.PERMISSION_DENIED
         */
        int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_CALENDAR);
    

    필요한 권한 요청
    요청 권한: requestPermissions()
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
            // Should we show an explanation?
            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.READ_CONTACTS)) {
    
            } else {
                // No explanation needed, we can request the permission.
                //      requestPermissions() ,              
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.READ_CONTACTS},
                        MY_PERMISSIONS_REQUEST_READ_CONTACTS);
                // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
                // app-defined int constant. The callback method gets the
                // result of the request.
            }
        }
    

    권한 요청에 응답
    요청 권한이 적용되면 대화 상자가 사용자에게 표시됩니다.사용자가 응답하면 시스템은 onRequestPermissionsResult () 방법을 호출하여 사용자에게 응답을 전달합니다.예를 들면 다음과 같습니다.
    @Override
        public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
            switch (requestCode) {
                case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
                    // 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.
    
                    } else {
    
                        // permission denied, boo! Disable the
                        // functionality that depends on this permission.
                    }
                    return;
                }
    
                // other 'case' lines to check for other
                // permissions this app might request
            }
        }
    

    좋은 웹페이지 즐겨찾기