Перезапуск Blackberry программно - PullRequest
2 голосов
/ 10 октября 2011

Я хочу создать приложение Blackberry, которое может самостоятельно перезапустить Blackberry (после выполнения некоторой задачи)

например, я делаю это маленькое приложение, используя пустышку

dummy: (после того, как он становится dummy.cod, я перемещаю его в папку res и переименовываю в dummy, больше не используя .cod)

public class Dummy extends Application{  

    public static void main( String[] args ) {  
        new Dummy().enterEventDispatcher();  
    }

    public Dummy(){
    }
}    

пример кода приложения: (описание моего приложения: просто нажмите 1 кнопку для вызова метода сброса)

public void reset() throws Exception {
    // load the dummy cod file
    byte[] cod = IOUtilities.streamToBytes(getClass().getResourceAsStream("/dummy"));

            // create new module
    int newHandle = CodeModuleManager.createNewModule(cod.length, cod, cod.length); 

    // install the module
    if (newHandle != 0) {
        int savecode = CodeModuleManager.saveNewModule(newHandle, true);
        if (savecode == CodeModuleManager.CMM_OK_MODULE_OVERWRITTEN)
            Logger.debug("The operation completed successfully; a module was overwritten and marked for deletion in the process.");
        // now run the dummy application in background
        ApplicationDescriptor appDesc = CodeModuleManager.getApplicationDescriptors(newHandle)[0];
        ApplicationManager.getApplicationManager().runApplication(appDesc, false);
        CodeModuleManager.deleteModuleEx(newHandle, true);
    }

    // restart the blackberry if required
    CodeModuleManager.promptForResetIfRequired(); 

}

Когда я запускаю свой код в Simulator (SimPackage 6.0.0.587 - 9780 и SimPackage 5.0.0.977 - 9300), код работает нормально, отображается сообщение «Перезапустить сейчас / перезапустить позже».

Но когда я загружаю свой код в реальное устройство 9780 OS 6.0.0.570 и устройство 9300 OS 5.0.0.846, код все равно не работает.

Есть идеи, почему это случилось? или я просто совершаю простую, но фатальную ошибку?

Спасибо:)

1 Ответ

0 голосов
/ 16 августа 2012

Ваш код правильный, но вам нужно подписать ваш код, чтобы иметь возможность выполнять CodeModuleManager.deleteModuleEx на реальном устройстве.

Пожалуйста, обратитесь к Документация CodeModuleManager для получения дополнительной информации.

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