2016-07-31 1 views
0

작동하지 않음에 요청 권한을 허용 : https://developer.android.com/training/permissions/requesting.html내가 런타임에서 요청 권한을 허용 할 수 있도록이 링크에있는 튜토리얼을 따라가 런타임

을하고 작동하지 않습니다, 나는하지만 서로 다른 권한을 "ACCESS_FINE_LOCATION과 같은 코드를 복사 "

활동

int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION); 
if (permissionCheck != PackageManager.PERMISSION_GRANTED) { 


    if (ActivityCompat.shouldShowRequestPermissionRationale(this, 
      Manifest.permission.ACCESS_FINE_LOCATION)) { 

     DialogUtils.showDialogMessage(this, getString(R.string.error), 
       getString(R.string.error_location_permission_not_granted), getString(R.string.ok), getString(R.string.cancel), new OnClickListener() { 
        @Override 
        public void onClick(View view) { 

        /*ContextCompat.requestPermissions(ItemDetailsActivity2.this, 
          new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
          MAP_PERMISSION_REQUEST_CODE);*/ 
        } 
       }, null); 

    } else { 

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

의에서 onCreate 방법에

다음이 다시 호출입니다 같은 내 코드 방법

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 

    switch (requestCode) { 
     case MAP_PERMISSION_REQUEST_CODE: { 

      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

       initalizeMap(); 
      } else { 

       DialogUtils.showDialogMessage(this, getString(R.string.error), getString(R.string.error_location_permission_not_granted), getString(R.string.ok), null); 
      } 
      return; 
     } 
    } 
} 

이 저와 무슨 일이 잘못

compileSdkVersion 23 
buildToolsVersion '23.0.3' 
minSdkVersion 15 
targetSdkVersion 15 

사람이 말해 주실 래요 내 빌드 구성은?

편집

내가 매니페스트 및 Gradle을 파일에 모두 23에 targetSdkVersion을 변경하고, 나에게 다음과 같은 화면을 제공합니다 내 응용 프로그램을 실행하고, 내가 할 수 누를 때, 오랜 시간 동안 나에게 검은 화면을 제공, 그리고 아무 것도하지 말아라

지금 무엇이 문제인지 나에게 말해 줄 수 있니?

향후

enter image description here

+0

예, Android 버전 6.0.1 –

답변

2

수단 "이 작동하지 않습니다"무엇을 구체적으로 설명해주십시오.

이 경우 "작동하지 않는다"는 의미는 "사용자에게 허가를 부여하는 대화 상자가 나타나지 않습니다"라는 의미입니다. targetSdkVersion15으로 설정되어 있고 23 이상이 아니기 때문입니다. targetSdkVersion15 인 경우 사용자가 dangerousprotectionLevel이 포함 된 권한을 포함하여 설치시 모든 사용 권한에 동의해야하는 기존 사용 권한 지원이 필요하다고 말합니다.

+0

으로 기기에서 실행 중이므로 targetSdkVersion을 23으로 변경 하시겠습니까? –

+0

@AmiraElsayedIsmail : 왜 15로 설정했는지 모르겠습니다. 런타임 권한을 사용하려면 적어도 23으로 올리십시오. 그러나 코드에 추가로 변경해야 할 사항이있을 수 있습니다 일단 그렇게하면. JavaDocs에서 [16 ~ 23 사이의 VERSION_CODES] (https://developer.android.com/reference/android/os/Build.VERSION_CODES.html)를 검토하여 수정할 필요가있는 기타 항목을 확인해야합니다. . – CommonsWare

+0

제 편집을 확인하십시오. –