【发布时间】:2012-06-22 00:40:15
【问题描述】:
我使用 Eclipse 中的“使用签名工具签名”来签署我的应用程序。我看到签名者 ID RRT、RBB 和 RCR 都已为 cod 文件(JRE 版本 4.5)签名。我尝试部署到 5.0 设备并看到“模块尝试访问安全 API”错误。
我错过了什么?
【问题讨论】:
标签: blackberry code-signing blackberry-eclipse-plugin blackberry-jde
我使用 Eclipse 中的“使用签名工具签名”来签署我的应用程序。我看到签名者 ID RRT、RBB 和 RCR 都已为 cod 文件(JRE 版本 4.5)签名。我尝试部署到 5.0 设备并看到“模块尝试访问安全 API”错误。
我错过了什么?
【问题讨论】:
标签: blackberry code-signing blackberry-eclipse-plugin blackberry-jde
您是如何将其部署到设备上的?
您应该考虑在 cmdline 中使用 javaloader load myfile.cod 或在 eclipse 中使用 BlackBerry-Load Project(s) on device
【讨论】:
您的应用是否请求了所需的权限? 您需要类似下面的代码(在访问任何安全 API 之前运行它):
int [] needed_permissions = {
ApplicationPermissions.PERMISSION_INPUT_SIMULATION,
ApplicationPermissions.PERMISSION_FILE_API,
ApplicationPermissions.PERMISSION_ORGANIZER_DATA,
ApplicationPermissions.PERMISSION_INTERNET,
ApplicationPermissions.PERMISSION_LOCATION_DATA,
ApplicationPermissions.PERMISSION_WIFI
};
public void checkPerm() {
ApplicationPermissionsManager apm = ApplicationPermissionsManager.getInstance();
ApplicationPermissions original = apm.getApplicationPermissions();
if(!permissionsPresent(apm, original))
permissionsRequest(apm);
application.pushScreen(new MainScreen());
}
private boolean permissionsPresent(ApplicationPermissionsManager apm, ApplicationPermissions original) {
for(int i=0;i<needed_permissions.length;i++)
if(original.getPermission( needed_permissions[i] ) != ApplicationPermissions.VALUE_ALLOW)
return false;
return true;
}
private void permissionsRequest(ApplicationPermissionsManager apm) {
ApplicationPermissions permRequest = new ApplicationPermissions();
for(int i=0;i<needed_permissions.length;i++)
permRequest.addPermission( needed_permissions[i] );
if(!apm.invokePermissionsRequest( permRequest )){
Dialog.alert("Bad Perm!");
System.exit(0);
}
}
【讨论】: