2014-12-15 1 views
5

APK를 Google에 업로드 할 때 READ_PHONE_STATE 권한이 있음을 확인했습니다. 필자는 그것을 추가하지 않았으며 내 매니페스트 나 내 프로젝트의 다른 파일에 아무 것도 쓰여지지 않았습니다. (이 권한을 얻기 위해 모든 도서관을 살펴 보았습니다.)내 애플리케이션이 매니페스트에 선언되어 있지 않지만 READ_PHONE_STATE 권한이있는 이유는 무엇입니까?

내 라이브러리에 이전 빌드에서이 권한이 없습니다. 마지막 빌드 이후로 안드로이드 스튜디오를 버전 1로 업데이트하고, 내 안드로이드 SDK를 업데이트하고 (코드에서) 내 앱에 몇 가지 변경을가했습니다. 내 앱에서 기기 ID를 요청하지 않습니다.

내 앱에는 minSDK가 14이고 광고가 없습니다.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

가 여기에 문제가있는 apk file

답변

11

나는이 문제를 해결할 수 있었다 :

나는 내 응용 프로그램에서 다음과 같은 권한을 선언했다. 그것은 reneph의 해결책과 유사합니다.

하나의 라이브러리에 build.gradle이나 manifest 파일에 minSDK가 지정되어 있지 않음을 발견했습니다. 추가 후

defaultConfig { 
    minSdkVersion 14 
    targetSdkVersion 21 
} 

허가가 사라졌습니다. 나는 왜 그것이 이전 빌드 (또한 minSDK가 지정되지 않았다)에 대한 허가없이 작동했는지 모른다. Android Studio 1.0 또는 Android SDK 업데이트 중 하나 여야합니다. READ_PHONE_STATE 허가


안드로이드 개발자 문서 :

: 모두 당신의 minSdkVersiontargetSdkVersion 값이 3 이하로 설정되어있는 경우, 시스템은 암시 적으로 귀하의 응용 프로그램이 권한을 부여합니다. 이 권한이 필요하지 않은 경우 targetSdkVersion이 4 이상인지 확인하십시오.

+0

다른 별자리로 이것을 재현했습니다 : 주 프로젝트에서 다른 minSdk/타겟을 지정한 라이브러리 프로젝트를 통합했습니다. – Patrick

2

입니다 : 여기 내 매니페스트 권한입니다.

minSdkVersion="4" (내 라이브러리가 아니지만 내 앱에는 minSdkVersion="14")이 포함 된 다른 라이브러리가 포함되어 있습니다. 방금 ​​추가 라이브러리의 minSdkVersion을 14로 변경했으며 사용 권한이 사라졌습니다!

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="com.android.vending.BILLING" /> 
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> 
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
<permission-group android:name="android.permission-group.STORAGE" />