2016-11-06 2 views
1

Android 7, targetSdkVersion 24에있는 내 앱에서 Android 권한 WRITE_EXTERNAL_STORAGE을 요청하려고합니다. 그러나 앱을 실행하면 결코이 권한을 요청하는 메시지가 표시되지 않으며 기기에서 설정> 앱> MyApp> 권한으로 이동하면 WRITE_EXTERNAL_STORAGE과 관련된 내용은 표시되지 않습니다.Android 권한에 대한 프롬프트 또는 토글이 없습니다.

어딘가에 단계가 없습니까?

의 AndroidManifest.xml (전체 파일 on pastebin) 조사하는 데 시간을 소비 한 후

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

MyActivity.java

int permission = activity.checkSelfPermission(perm); 
if (permission != PackageManager.PERMISSION_GRANTED) 
    activity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); 
+0

당신의'targetSdkVersion'은 무엇입니까? 또한' '이 상주하는 곳을 보여주기 위해 전체 목록을 게시하고 싶을 수도 있습니다. – CommonsWare

+0

@CommonsWare : 감사합니다. 전체 매니페스트에 대한 링크를 추가했으며 targetSdkVersion은 24입니다. – JellicleCat

+1

Android 6.0+ 런타임 권한은 설정> 앱> (앱)> 권한 '에 있습니다. 설명과 거의 일치하지 않습니다. 그 응용 프로그램의 전체 제거를 시도한 다음 다시 설치하십시오. – CommonsWare

답변

0

, 나는이 문제에 대한 이론을 개발했다.

내 응용 프로그램은 자신의 AndroidManifest.xml이있다 일부 종속성이 :

<uses-permission 
     android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
     android:maxSdkVersion="18" /> 

이것이 수행하면 SDK 내가 무엇입니까 문제와 일치의 18보다 높은 경우 자동 WRITE_EXTERNAL_STORAGE 권한을 거부하다; 권한이 거부되고 사용자에게 알리지도 않습니다.

는 다음 나는 lib에 종속 권한 설정을 재정의 할 시도 내 앱의 AndroidManifest.xml이 추가 테스트 :

android:maxSdkVersion="25" 

그런 다음 masSdkVersion에 충돌 병합으로 인해 구축하는 데 실패합니다. 이것은 문제에 대한 나의 의심을 더욱 분명하게 해준다. android : maxSdkVersion이 App 모듈에 전달되었습니다.

문서를 파고 나면 해결책을 찾을 수 없지만 해결 방법이 있습니다. READ_EXTERNAL_STORAGE는 (는) WRITE_EXTERNAL_STORAGE와 (과) 같은 그룹에 속해 있으며, 동일한 그룹에 대한 권한 요청은 전체 그룹에 대한 나머지 권한에 적용됩니다.

그래서 내 App 및 AndroidManifest.xml에서 READ 권한을 요청했지만 테스트는 작동하지만 바보 같아 보입니다.

해결할 적절한 방법을 찾으면 업데이트 할 예정입니다.