java - 奇怪的黑莓问题 - 新版本突然请求访问权限

标签 java blackberry permissions code-signing

在我的应用程序的开发测试过程中,我遇到了一个奇怪的问题,即完全相同的代码库的新版本(Build 2.0)突然默认权限(运营商互联网、gps)为“提示”而不是“允许安装”。

详细信息 - 相同的代码库
因此存在两个版本,两者都具有相同的代码库。 Build 1.0 已于上周制作/签署。昨天制作/签署了 Build 2.0。如果我安装 Build 1.0,初始权限没有问题(全部允许)。但在安装 Build 2.0 时,相同的权限(运营商互联网、GPS)被设置为提示。

问题
该应用程序确实会发出 GPS 和数据请求,并且我确实了解某些手机配置需要设置权限,但为什么以前不需要权限的构建(构建 1.0)突然需要它们(构建 2.0)?

我认为这可能与我的项目/build设置有关,但我不确定是什么。有什么建议吗?

最佳答案

是否有可能您在 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”程序提供了一个很好的示例,用于查询应用程序权限并请求应用程序本身更改应用程序权限。

关于java - 奇怪的黑莓问题 - 新版本突然请求访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1045390/

相关文章:

java - 使用装饰器的 Thymeleaf 布局不起作用

blackberry - 处理大型黑莓应用程序(大量图片)

java - 从 Blackberry 中的 SQlite 中错误检索西类牙语文本

graphics - 如何在 BlackBerry 上的位图/位图字段上进行自定义绘图?

django - 如何重置 Django 管理员密码?

php mkdir 不遵守我正在使用的 chmod 规则

linux - 执行以下命令时,为什么我的权限被拒绝?我正在尝试在 HDP 上运行它

java - 从可选值的供应商序列中提取第一个定义值(如果有)

Java线程监听套接字,WHILE循环不等待

java - 无法使用 FileReader 和 BufferedReader 在 Java 中读取文本文件