【问题标题】:Module attempts to access secure API: RIM Blackberry模块尝试访问安全 API:RIM Blackberry
【发布时间】: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


    【解决方案1】:

    您是如何将其部署到设备上的? 您应该考虑在 cmdline 中使用 javaloader load myfile.cod 或在 eclipse 中使用 BlackBerry-Load Project(s) on device

    【讨论】:

      【解决方案2】:

      您的应用是否请求了所需的权限? 您需要类似下面的代码(在访问任何安全 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);
          }   
      
      }
      

      【讨论】:

      • 谢谢。此代码可帮助我启用由用户设置的权限,但要解决此问题,我需要在部署到设备时对应用程序进行签名(即使您已经签署了应用程序也是必需的)并且我无法通过 BlackBerry Desktop Software 进行操作。我使用了 BlackBerry 菜单下的“在设备上加载项目”选项(右键单击项目名称以访问 BlackBerry 菜单)。它要求输入签名密码并且有效。
      • 抱歉,我说您的回答无助于解决我的问题。当使用 BlackBerry 菜单下的“在设备上加载项目”选项时,它会要求提供签名密钥。谢谢
      • 有人可以通知发帖者请添加答案吗?用户清楚地解决了这个问题,但他没有费心提供。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多