BlackBerry: как использовать PersistableRIMKeyStore? - PullRequest
2 голосов
/ 25 августа 2010

Мне нужно безопасно хранить личные данные пользователя, чтобы они могли сохраняться при запуске моего приложения, а также при перезагрузке устройства.

Это будет строка, которую я предполагаю максимум 1000 символов.

Мне сказали, что я могу использовать RIM KeyStore API для этого.

Ну, я потратил часы на поиски каких-либо знаний об использовании RIM KeyStore API.Образцы JDE не содержат в этом ничего полезного.

Похоже, что это редкая вещь в разработке BB, поэтому официальной информации об этом почти нет.* и это .Из тех, которые я понял, лучший выбор для меня - использовать PersistableRIMKeyStore (он сохраняется при перезагрузке устройства).Однако я не могу понять, какой именно должна быть реализация.

Может кто-нибудь помочь с примером кода или указать мне какое-нибудь руководство?Также, возможно, есть более лучший / более простой способ / подход для моей задачи, поэтому, пожалуйста, дайте мне знать об этом.

Заранее большое спасибо !!!

Ответы [ 2 ]

1 голос
/ 21 августа 2011

Если вы используете хранилище в том же месте, что и «PersistentStoreDemo», которое, если вы не знаете, вы можете получить, перейдя в «Файл» -> «Импорт» -> «Образцы ежевики», вы можете зашифровать информацию в хранилище. Кроме того, если у пользователя включена защита контента, вы можете использовать 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:

пакет ca.dftr.phillyd.lib.persistables;

/**
 * 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);
}
0 голосов
/ 21 августа 2011

PersistableRIMKeyStore используется для сохранения хранилища ключей RIM. Чтобы сохранить пользовательские данные при перезагрузке, вам нужно всего лишь использовать PersistentStore, если вы хотите, чтобы deta был защищен, вы можете использовать ContentProtectedHashtable или ContentProtectedVector.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...