IT박스

Android 권한 : 전화 통화 : 전화 상태 및 ID 읽기

itboxs 2020. 11. 5. 07:50
반응형

Android 권한 : 전화 통화 : 전화 상태 및 ID 읽기


내 Android 앱은 전화 통화와 관련이 없지만 테스트 기기에 디버그 빌드를 설치할 때 "전화 통화 : 전화 상태 및 ID 읽기"권한이 필요하다는 것을 알았습니다. (나는 이것에 대해 언급하지 않는다 AndroidManifest.xml).

가능한 최소한의 권한을 갖고 싶고 누군가 이것을 제거하는 방법을 알고 있는지 궁금하십니까? 나는에서 몇 가지 물건을 로깅 된 부분 주석 Build.MODEL, Build.VERSION.*나는 또한 내가 그는 "휴대 전화 상태"가 될 수 있다는 가로 / 세로 방향으로 생각을 검출 한 부분을 주석 등. 그러나 이들 중 어느 것도 필요한 권한을 제거하지 않는 것 같았습니다.

이 버그 보고서를 찾았습니다. http://code.google.com/p/android/issues/detail?id=4101 그러나 권한이 시장에서 올바르지 만 그렇지 않은 경우에 대한 메모와 함께 의도 한대로 작동하는 것으로 표시되었습니다. 이것은 다른 사람들의 경험입니까? (나는 그것을 테스트하기 위해 시장에 게시해야하는 것이 싫다.) 그렇지 않으면, 누구든지 내가 호출을 피할 수있는 API가 있는지 알고있어 내 앱에이 권한이 필요하지 않게 만들 수 있습니까?

감사!


(다른 사람 이이 문제에 직면하여 검색하는 경우 내 질문에 답하십시오.)

Android 소스의 PackageParser.java를 살펴보면 시스템이 자동으로 할당한다는 것을 알았습니다.

android.permission.WRITE_EXTERNAL_STORAGE and 
android.permission.READ_PHONE_STATE

4 미만의 targetSdk 버전 (도넛)을 선언하는 모든 앱. 이에 대한 호환성 이유가 있어야합니다. 이전 버전을 대상으로하는 앱은 명시 적으로 선언하지 않고도 이러한 권한이 있다고 가정 할 수 있습니다. 따라서 이러한 권한을 앱에 암시 적으로 추가하지 않으려면 AndroidManifest.xml에 다음과 같은 섹션을 추가하십시오.

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />

그게 다입니다.

-마이크


Android 1.6 변경 로그 : http://developer.android.com/sdk/android-1.6.html#api

WRITE_EXTERNAL_STORAGE : 애플리케이션이 외부 저장소에 쓸 수 있도록합니다. API 레벨 3 이하를 사용하는 애플리케이션에는이 권한이 묵시적으로 부여됩니다 (사용자에게 표시됨) . API 레벨 4 이상을 사용하는 애플리케이션은이 권한을 명시 적으로 요청해야합니다.

그러나 그것은 그들 중 하나 일뿐입니다. 어떤 이유로 공식 변경 로그에 READ_PHONE_STATE에 대한 정보가 없습니다. 전체 이야기는 여기에서 정리됩니다 : http://blogs.zdnet.com/Burnette/?p=1369&page=3

새로운 권한. 1.6 프로그램은 SD 카드의 내용을 수정할 수 있도록 WRITE_EXTERNAL_STORAGE 권한을 명시 적으로 요청해야하며 전화 상태 정보를 검색 할 수 있으려면 READ_PHONE_STATE 권한을 명시 적으로 요청해야합니다 . 이전 버전을 대상으로하는 앱은 항상 이러한 권한을 암시 적으로 요청합니다.

보시다시피 1.6 이상을 실행하는 휴대폰에 설치할 때 해당 권한을 요청하지 않고 1.5 이하를 대상으로하는 앱을 게시 할 수있는 방법이 없습니다.

참고 URL : https://stackoverflow.com/questions/1747178/android-permissions-phone-calls-read-phone-state-and-identity

반응형