代码之家  ›  专栏  ›  技术社区  ›  Vit Khudenko

黑莓:如何使用PersistableRIMKeyStore?

  •  2
  • Vit Khudenko  · 技术社区  · 14 年前

    这将是一个字符串,我猜最多1000个字符。

    好吧,我花了几个小时在谷歌上搜索任何关于RIM密钥库API用法的gide。JDE示例不包含任何对此有用的内容。

    我读过 this this

    有人能帮我编写示例代码或给我指一些指南吗?也可能有更好/更简单的方法来完成我的任务,所以,请告诉我。

    提前多谢!!!

    2 回复  |  直到 14 年前
        1
  •  0
  •   Richard    13 年前

    PersistableRIMKeyStore用于持久化RIM密钥存储。要持久化用户数据accross resets,只需使用PersistentStore,如果要保护deta,可以使用ContentProtectedHashtable或ContentProtectedVector。

        2
  •  1
  •   DFTR    13 年前

    如果您使用与“PersistentStoreDemo”相同的存储区,如果您不知道可以通过进入File->Import->Blackberry Samples获得该存储区,则可以加密存储区中的信息。除此之外,如果用户启用了内容保护,则可以使用ContentProtectedHashtable自动知道该信息将被加密。因此,如果没有内容保护,信息将被加密一次,打开它,它将被双重加密,并与应用程序名称空间的难以猜测的长散列一起存储(显然,因为注册存储需要它)。下面是我使用的:

    package ca.dftr.phillyd.lib.persistables;
    
    import net.rim.device.api.system.ApplicationDescriptor;
    import net.rim.device.api.util.ContentProtectedHashtable;
    import net.rim.device.api.util.Persistable;
    
    /**
     * Basic class for storing application specific information. 
     * Information such as application settings or whether the license agreement was accepted.
     * For more complex and specific classes they should be implemented separately and implement persistable 
     * @author deforbes
     */
    public class AppInfo extends ContentProtectedHashtable  implements Persistable {
    
        private String _appName = null;
        private String _version = null;
    
        /**
         * Constructs the application info, creates and persists a hashtable for application settings.
         * @param uniqueHexAppIdentifier Can be automatically created in resource class (BUNDLE_ID) or generated using other unique information.
         */
        public AppInfo() {    
            ApplicationDescriptor appDesc = ApplicationDescriptor.currentApplicationDescriptor();
            _appName = appDesc.getName();
            _version = appDesc.getVersion();
        }
    
        /**
         * Get the Name of the application
         * @return The application name from the app descriptor
         */
        public String getName()
        {
            return _appName;
        }
    
        /**
         * Get the Version of the application
         * @return The application version from the app descriptor
         */
        public String getVersion()
        {
            return _version;
        }
    }
    

    以及一类常量(如果需要,可以包含在上面的内容中)。例如,从我的PhillyD应用程序:

    包裹约dftr.phillyd.库持久性;

    /**
     * Keys for the AppInfo array
     * @author deforbes
     */
    public class AppInfoKeys {
        public static final String QUALITY = "Quality";
        public static final String CHANNEL = "Channel";
        public static final String CHANNEL_NAME = "Channel_Name";
        public static final String SEARCH = "Search";
        public static final String LICENSE_ACCEPTED = "isLicenseAccepted";
        public static final String VIDEOS_PER_PAGE = "NumPerPage";
        public static final Boolean DOWNLOAD_THUMBS = new Boolean(true);
    }