"주"응용 프로그램의 사용 권한을 요청하지 않음으로써 및 요청 동일한 android:sharedUserId
를 사용하여 다른 응용 프로그램 ("스텁")를 작성하여 이미 설치된 응용 프로그램에 대한 권한을 부여 할 수 있습니다 특징.
context.checkCallingOrSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
가 (권한 문자열 중 하나로서 유효한 상황 허가 등의 컨텍스트) true로 평가되면 권한 스텁 응용 프로그램을 선택하여 설치 한 경우 다음 확인할 수 있습니다. 사실이라면 스텁 앱이 설치되고 권한이 필요한 기능을 잠금 해제 할 수 있습니다. 거짓 인 경우 기본 기능으로 돌아갑니다.
그런 식으로 앱을 디자인 할 때 여러 버전을 배포하는 경우처럼 코드를 변경하지 않고도 주 apk에 선택적 권한을 쉽게 다시 소개 할 수 있습니다.
이제 스텁 응용 프로그램 (중 하나)의 설치를 트리거하여 사용자에게 권한을 쿼리 할 수 있습니다. 따라서 사용자 입력 후 권한이 필요한 경우 권한이 부여되지 않은 경우 apk를 실행하여 팝업을 시작하고 (물론 앞에 설명 활동을 추가 할 수도 있음) 다시 돌아올 때 해당 기능을 실행하십시오 패키지 관리자 또는 이전에 권한이 부여 된 경우. 기본 설정이나 firstrun 대화 상자의 어딘가에서 사용 권한을 사용 가능 또는 사용 불가능하게하는 옵션을 넣을 수도 있습니다. (나 같은) 게으른 사람들 패키지 설치를 제기하는 방법에 대한 간단한 요약은
: 유형 "application/vnd.android.package-archive"
를 사용하여 file://
-URI에 대한 Intent.ACTION_VIEW
을 사용하여 Intent
을 만듭니다. 자산과 자원은 직접 작동하지 않습니다. 예를 들어, 자산으로 묶어 캐시 폴더 또는 유사하게 복사 할 수 있습니다.
경고 :이 답변은 (앱을 누설 수 아래 참조)이 방법은 일부 제거 문제가 같이 구글 서비스 약관 플레이를 준수 expecially에 구글 플레이 (같은 타사 메커니즘을 통해 제거 할 때하지 않을 수 있습니다, 사용자가 이러한 방법을 사용하여 도우미 응용 프로그램을 보지 못해서) 옵션 권한이 afaik 플레이 저장소에 표시 될 수 없기 때문입니다.
제거 문제로 인해 응용 프로그램 이름이 "MyApp"인 경우 "MyApp : XXX permissions"와 같은 이름을 사용하는 것이 좋으므로 사용자는 사전 순 목록에있는 모든 항목을 쉽게 제거 할 수 있습니다.또는 스텁 응용 프로그램을 더 복잡하게 사용하여 살면 ACTION_PACKAGE_REMOVED as mentioned here을 사용하십시오.
출처
2013-08-04 00:46:57
dst
아니요 ............. –