Прежде всего, я хотел бы сказать вам, что я новичок в разработке черной рыбы.Приложение для обновления себя в blackberry
Как-то я разработал приложение в BB 5.0.0 и выше.
У меня есть функциональность для реализации, где я могу загрузить приложение BB (например, файл .cod) и обновить его, начиная с в моем приложении.
Модернизированное приложение будет храниться на моем сервере компании, и когда я позвоню в свой раздел и найду обновленную версию, я смогу обновить его программно.
я упомянул this ссылки и первоначально нашел ссылки here
не в состоянии получить эту задачу сделать с вышеуказанным раствором. Я думаю, что над решением URL требуется BB AppWorld в качестве посредника или обновленной версии, которая будет храниться на сервере приложений BB.
Пожалуйста, дайте мне знать, могу ли я обновить свое приложение BB, загрузив и заменив его внутри, выполнив некоторый код, не сохраняя его в мире приложений BB, и если да, то могу ли я достичь этого с помощью вышеупомянутой ссылки.
Это возможно в Android и J2ME и невозможно в iOS, но не знают о Blackberry.
Edit:
Я реализовал установки кода приложения, приведенные в официальном ежевика сайте разработчика и получать следующее исключение. Проверьте мои журналы.
{"FileSize":2338776,"FileName":"MyApp_3.0.1.cod","LatestBuild":"2","LatestVersion":"3.0.1","DownloadURL":"http://myserver.link/uploads/116/MyApp_3.0.1.cod"}
0:08:38.025: MyApp is being upgraded to version 3.0.1
0:10:31.509: [AppWorld] - 01/23 11:38:00 INFO Updater run() Update check at: Thu Jan 23 11:38:00 GMT 2014
0:10:31.511: [AppWorld] - 01/23 11:38:00 DEBUG AbstractDatabase readDatabase()
0:10:31.513: [AppWorld] - 01/23 11:38:00 DEBUG Updater run() Updater Content Installs 5
0:10:31.516: [AppWorld] - 01/23 11:38:00 DEBUG Connecting to: 80bba47723dae059a32abfff7844cea89fbb7bc1e90e3ed8159e626b8427aeac825047d8b3dbc418dbf3b04b6dfd17a6f063f3d7cd6a0ed860be0c9f81cf58f488916d58a1d5b3fc52f1806693b9f8179b9fc9de5643c62f2bf92f4945716455af200982fa
0:10:31.518: 1618056b5bddb91f830ae1d11076db1ec2adb6
0:10:31.519: [AppWorld] - 01/23 11:38:00 DEBUG Connection Method: DEVICE
0:10:31.940: [AppWorld] - 01/23 11:38:00 INFO AppStoreConnection: HTTP 200 , Content-Length: 2497
0:10:31.942: [AppWorld] - 01/23 11:38:00 INFO Appworld server reporting minimum version: 4.0.0.55 our local version is: 2.1.4.13
0:10:31.944: [AppWorld] - 01/23 11:38:00 22 ERROR An error has occur while updating. Updater load() id1 null
0:10:31.948: VM:PISVt=0,h=4d1e,id=d15a33128dfbb5d9
0:10:31.949: VM:LNTDa=commit,t=1,p=net_rim_bb_appworld_updater,h=135
0:10:31.951: [AppWorld] - 01/23 11:38:00 22 ERROR An error has occur while updating. null
0:10:31.954: VM:PISVt=0,h=4d1e,id=d15a33128dfbb5d9
0:10:31.956: VM:LNTDa=commit,t=1,p=net_rim_bb_appworld_updater,h=135
0:10:31.957: [AppWorld] - 01/23 11:38:00 INFO Updater rescheduleUpdateTime() Attempting to schedule Next Update at Thu Jan 23 12:08:00 GMT 2014
0:10:31.959: AM: App net_rim_bb_appworld_updater is trying to schedule for time: 1390478880504
0:10:31.960: AM: Scheduled net_rim_bb_appworld_updater for 1390478880000
0:10:31.962: [AppWorld] - 01/23 11:38:00 INFO AppWorld Updater Rescheduled @ Thu Jan 23 12:08:00 GMT 2014
0:10:31.971: Process net_rim_bb_appworld_updater(303) cleanup started
0:10:31.972: Process net_rim_bb_appworld_updater(303) cleanup done
0:10:38.055: Exception: java.io.InterruptedIOException: Local connection timed out after ~ 120000 downloading URL: http://myserver.link/uploads/116/MyApp_3.0.1.cod
0:10:38.059: FD Back On
0:10:38.061: Exception during install of MyApp java.lang.NullPointerException
0:10:38.064: MyApp 3.0.1 failed to upgrade.
0:10:38.117: FocusHistory: Focus gained; App net_rim_services_impl; Component net.rim.device.api.ui.component.ButtonField
Update
код установщика я сохранил для моей цели в моем приложении:
CodeModuleGroup cmGroup = new CodeModuleGroup(appInfo.getModuleGroupName());
cmGroup.setFriendlyName(appInfo.getModuleGroupFriendlyName());
cmGroup.setVersion(appInfo.getVersion());
cmGroup.setVendor(appInfo.getVendor());
//Download and save all of the cod files.
//for(int count = 0; count < numOfCods; ++count)
//{
byte[] codData = downloadFile(appInfo.getDescriptorURL());
// if (codData != null)
// {
//Create the new cod file.
moduleHandles = CodeModuleManager.createNewModule(codData.length, codData, codData.length);
//Save the module
int result = CodeModuleManager.saveNewModule(moduleHandles, true);
log("Result code :"+result);
//Ensure that the cod file was saved.
if (result != CodeModuleManager.CMM_OK && result != CodeModuleManager.CMM_OK_MODULE_OVERWRITTEN)
{
//The cod file was not saved.
throw new Exception("Failed to save cod."+result);
}
//Add the CodeModule to the CodeModuleGroup.
cmGroup.addModule(CodeModuleManager.getModuleName(moduleHandles));
я получаю результат = 10, который CodeModuleManager.CMM_HANDLE_INVALID, теперь из-за этого следующее условие выдает исключение и т. д., теперь я обнаружил, что файл на самом деле загружается, но когда он пытается сохранить, int result = CodeModuleManager.saveNewModule(moduleHandles, true);
в этой строке я получаю CMM_HANDLE_INVALID. Если кто-нибудь знает вопрос, пожалуйста, дайте мне знать.
Заранее спасибо.
Не могли бы вы предоставить ссылку (ссылку) на код установщика, который вы используете? –
Я использую код, приведенный в официальной статье в KB, есть вложение с именем Installer.zip, http://supportforums.blackberry.com/t5/Java-Development/Programmatically-install-and-upgrade-applications/ta-p/443008 – Ankit
В следующий раз, пожалуйста, просто поместите сообщение журнала, которое приходит из вашего приложения, или связано с вашим приложением. Вам даже не пришлось публиковать этот журнал - единственное Исключение, которое имеет значение, - это все, что нам нужно. –