2009-06-25 37 views
0

在我的應用程序的開發測試過程中,我遇到了一個奇怪的問題,即完全相同的代碼庫突然默認權限(運營商互聯網,gps)的新版本(Build 2.0)提示而不是允許安裝。奇怪的黑莓問題 - 新建立突然請求訪問權限

詳情 - 相同的代碼庫
所以存在兩個版本,兩者具有相同的代碼庫。 Build 1.0上週發佈/簽署。 Build 2.0昨天已經簽署/簽署。如果我安裝Build 1.0,則初始權限(全部允許)都沒有問題。但在安裝Build 2.0時,相同的權限(運營商互聯網,gps)設置爲提示。

問題
的應用程序確實讓GPS &數據的請求,我也明白,有些手機的配置要求的權限進行設置,但爲什麼一個構建,以前也沒必要權限(編譯1.0)所有的突然要求他們(Build 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」程序有一個查詢應用程序權限並請求從應用程序本身更改應用程序權限的好例子。