2009-06-25 1 views
0

내 앱의 개발 테스트 중에 새로운 코드 빌드가 빌드 2.0 (빌드 2.0)으로 갑자기 기본 권한 (캐리어 인터넷, GPS)이되는 이상한 문제가 발생했습니다. 설치시 Allow가 아닌 ​​Prompt로 표시됩니다.이상한 블랙 베리 이슈 - 새로운 빌드 갑자기 액세스 권한 요청 액세스

세부 사항 - 동일한 코드베이스
그래서 같은 코드 기반으로 두 개의 빌드가 존재한다. 빌드 1.0은 지난 주에 작성/서명되었습니다. 어제 빌드 2.0이 작성/서명되었습니다. 빌드 1.0을 설치하면 초기 사용 권한 문제가 없습니다 (모두 허용). 그러나 Build 2.0을 설치하면 동일한 사용 권한 (통신사 인터넷, GPS)이 Prompt로 설정됩니다.

질문
응용 프로그램은 GPS를 & 데이터 요청을 않고 좀 전화 구성 설정 권한을 필요로하는 이해,하지만 왜 빌드 이전 권한 (1.0 빌드)이 모두 필요하지 않은 것이라고 갑자기 그들을 (빌드 2.0) 필요하십니까?

내 프로젝트/빌드 설정과 관련이 있다고 생각하지만 어떤 부분인지 확실하지 않습니다. 어떤 제안?

답변

3

방화벽을 켤 때와 같이 기기를 1.0에서 2.0으로 변경할 수 있습니까?

내가 아는 한 빌드, 다운로드 또는 앱 설치 권한을 설정하기위한 시간을 설치할 때 수행 할 수있는 작업은 없습니다. 쿼리를 요청하거나 앱 권한에 대한 변경을 요청하기 전에 실제로 실행될 때까지 기다려야합니다.

설정이 실제로으로 설정되어 당신이에서 들여다 봐도하기 위해, 응용 프로그램의 초기화 코드의 다음 코드를 넣어 시도 할 수 있습니다 :

ApplicationPermissionsManager apm = ApplicationPermissionsManager.getInstance(); 
ApplicationPermissions permissions = apm.getApplicationPermissions(); 
int[] keys = permissions.getPermissionKeys(); 
for (int i = 0; i < keys.length; i++) { 
    int key = keys[i]; 
    System.out.println("APM: " + key + " = " + 
     permissionToString(permissions.getPermission(key))); 
} 

과 :

public String permissionToString(int value) { 
    switch(value) { 
     case ApplicationPermissions.VALUE_ALLOW: 
      return "ALLOW"; 
     case ApplicationPermissions.VALUE_PROMPT: 
      return "PROMPT"; 
     case ApplicationPermissions.VALUE_DENY: 
      return "DENY"; 
     case -1: 
      return "NOT_SET"; 
     default: 
      return Integer.toString(value); 
    } 
} 

JDE 샘플 디렉토리의 "applicationpermissionsdemo"프로그램은 앱 권한을 쿼리하고 앱 자체의 앱 권한 변경을 요청하는 좋은 예입니다.