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