Если ваше приложение использует только OS5 API
Если вы разрабатываете свое приложение с использованием OS5 BlackBerry JRE (Java Runtime Environment), то оно будет работать на всех устройствах под управлением OS5, 6 и7. BlackBerry OS обратно совместима с предыдущими ОС, поэтому вам не нужно беспокоиться об упаковке для отдельных версий ОС.
Что касается упаковки приложения, вам просто нужно загрузить appname.jadи файлы appname.cod в файлах поставки / Standard / 5.0.0 на ваш веб-сервер, а затем направьте пользователей к нему со своего телефона BB, им будет предложено загрузить и установить его.
Если вашПриложение использует несколько API
Вам нужно будет распространять файл cod и jad для каждой используемой версии API.Загрузите их на свой веб-сервер, а затем используйте скрипт для определения версии ОС пользователя.Вот PHP-скрипт для этого:
<?php
$strUserAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($strUserAgent, "BlackBerry") !== FALSE){
$blnOSFound = false;
echo "This is a BlackBerry.";
/**
* BlackBerrys have 2 user agent string formats, check for both:
*
* Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.296 Mobile Safari/534.11+
* BlackBerry9700/5.0.0.351 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/123
*
*/
$arrAgentParts = explode(" ", $strUserAgent);
for ($i=0;$i<count($arrAgentParts);$i++){
$strAgentPart = $arrAgentParts[$i];
if (strpos($strAgentPart, "BlackBerry") === 0 &&
strpos($strAgentPart, "/") !== FALSE){
$intPositionOfSlash = strpos($strAgentPart, "/");
$strOSVersion = substr($strAgentPart, $intPositionOfSlash+1, strlen($strAgentPart));
$blnOSFound = true;
break;
} else if (strpos($strAgentPart, "Version") === 0){
$intPositionOfSlash = strpos($strAgentPart, "/");
$strOSVersion = substr($strAgentPart, $intPositionOfSlash+1, strlen($strAgentPart));
$blnOSFound = true;
break;
}
}
if ($blnOSFound){
echo " OS Version: ".$strOSVersion;
$intMajorOSVersion = substr($strOSVersion, 0, 1);
//Redirect user to the jad file for their OS version
switch ($intMajorOSVersion){
case 5:
Header("Location: 5.0.0/myapp.jad");
break;
case 6:
Header("Location: 6.0.0/myapp.jad");
break;
case 7:
Header("Location: 7.0.0/myapp.jad");
break;
default:
echo "Unsupported OS version";
break;
}
} else {
echo " Could not find OS version";
}
} else {
echo "Not a BlackBerry";
}
?>
Возможно, вы захотите немного поэкспериментировать с этим, чтобы удалить операторы echo
.
При разработке приложения для нескольких API существует 2 подхода:
- Поддерживать отдельные проекты для каждой версии API и использовать общую библиотеку кода, которая будет работать на всех API, чтобы избежать дублированияcode
- Определите директивы препроцессора в вашем BlackBerry_App_Descriptor.xml для условного включения кода на основе целевой ОС.Вам нужно будет изменять ссылочную BlackBerry JRE каждый раз, когда вы меняете целевую ОС (в Eclipse: Свойства-> Путь сборки Java-> Библиотеки).