模块尝试访问安全API:RIM Blackberry

模块尝试访问安全API:RIM Blackberry,blackberry,code-signing,blackberry-eclipse-plugin,blackberry-jde,Blackberry,Code Signing,Blackberry Eclipse Plugin,Blackberry Jde,我使用Eclipse中的“签名工具”对我的应用程序进行签名。我看到签名者ID RRT、RBB和RCR都是为cod文件(JRE版本4.5)签名的。我尝试部署到一个5.0设备上,发现“模块尝试访问安全API”错误 我错过了什么 你的应用程序是否请求了所需的权限? 您需要以下代码(在访问任何安全API之前运行): int[]所需的\u权限={ ApplicationPermissions.PERMISSION\u输入\u模拟, ApplicationPermissions.PERMISSION\u文件

我使用Eclipse中的“签名工具”对我的应用程序进行签名。我看到签名者ID RRT、RBB和RCR都是为cod文件(JRE版本4.5)签名的。我尝试部署到一个5.0设备上,发现“模块尝试访问安全API”错误


我错过了什么

你的应用程序是否请求了所需的权限? 您需要以下代码(在访问任何安全API之前运行):

int[]所需的\u权限={
ApplicationPermissions.PERMISSION\u输入\u模拟,
ApplicationPermissions.PERMISSION\u文件\u API,
ApplicationPermissions.PERMISSION\u ORGANIZER\u数据,
ApplicationPermissions.PERMISSION\u INTERNET,
ApplicationPermissions.PERMISSION\u位置\u数据,
ApplicationPermissions.PERMISSION\u WIFI
};
公共void checkPerm(){
ApplicationPermissionsManager apm=ApplicationPermissionsManager.getInstance();
ApplicationPermissions original=apm.getApplicationPermissions();
如果(!permissionsPresent(apm,原件))
许可要求(apm);
application.pushScreen(新的主屏幕());
}
私有布尔权限Present(ApplicationPermissionsManager apm,ApplicationPermissions原件){

对于(inti=0;i您是如何将其部署到设备的?
在Eclipse

中,您应该考虑使用<代码> JavaLoad加载MyField.CooD.COD> COD>代码>黑莓< <代码> ->代码>加载项目(S),该代码帮助我启用用户设置的权限,但是为了解决这个问题,当部署到设备时,我需要在应用程序上签名。(即使你已经签署了你的应用程序,这也是必需的),而我没有办法通过黑莓桌面软件来完成。我在黑莓菜单中使用了“在设备上加载项目”选项(右键单击项目名称访问黑莓菜单)。它要求输入签名密码,但成功了。很抱歉,我说您的回答无助于解决我的问题。使用“在设备上加载项目”时BlackBerry菜单下的选项,它要求签名键。感谢有人通知海报,请添加此问题的答案?问题已由用户明确解决,但他没有费心提供。
    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);
    }   

}