Detecção da base
Você pode detectar quando um aparelho BlackBerry está conectado a uma base (como uma base de kit para carro) usando o tipo de recurso DeviceCapability.TYPE_CRADLE que faz parte da API de recursos do aparelho.
Você pode usar DeviceCapability.isSupported() e DeviceCapability.isAvailable() para detectar o status da base. Os aparelhos que executam o BlackBerry Device Software 6.0 retornam true para isSupported(DeviceCapability.TYPE_CRADLE). Quando um aparelho que executa oBlackBerry Device Software 6.0 está conectado a uma base, isAvailable(DeviceCapability.TYPE_CRADLE) retorna true.
Quando você detecta uma conexão de base, é possível usar a classe CradleProtocol para detectar o tipo de base e as propriedades.A CradleProtocol é fornecida no pacote net.rim.device.api.accessory. A classe fornece campos para um tipo de base (como uma base de kit para carros, um estojo ou um pod de carregamento) e as propriedades da base (como se a base tem luzes ou botões que podem ser alterados automaticamente).
CradleProtocol.getCradleType() retorna o tipo de base que a própria base fornece. Pode ser que uma base não forneça seu tipo preciso. Por exemplo, pode ser que uma base de kit para carros retorne CradleProtocol.TYPE_SIMPLE, em vez de CradleProtocol.TYPE_CAR_KIT.
Exemplo de código: Detectar se um aparelho está conectado a uma base
O exemplo de código a seguir testa se o aparelho está conectado a uma base. Se estiver, o tipo de base será exibido.
import net.rim.device.api.accessory.CradleProtocol;
import net.rim.device.api.system.capability.DeviceCapability;
import net.rim.device.api.ui.component.RichTextField;
import net.rim.device.api.ui.container.MainScreen;
class CradleDemoScreen extends MainScreen
{
public CradleDemoScreen()
{
setTitle("Cradle Demo");
RichTextField statusField = new RichTextField();
add(statusField);
boolean isConnected =
DeviceCapability.isAvailable(DeviceCapability.TYPE_CRADLE);
if (isConnected)
{
CradleProtocol myCradle = CradleProtocol.getInstance();
int cradleType = myCradle.getCradleType();
switch (cradleType)
{
case CradleProtocol.TYPE_CAR_KIT:
statusField.setText("Device is connected to a car kit cradle.");
break;
case CradleProtocol.TYPE_AUDIO:
statusField.setText("Device is connected to an audio cradle.");
break;
case CradleProtocol.TYPE_BEDSIDE:
statusField.setText("Device is connected to a charging pod cradle.");
break;
case CradleProtocol.TYPE_CHARGER:
statusField.setText("Device is connected to a charger cradle.");
break;
case CradleProtocol.TYPE_DESKTOP:
statusField.setText("Device is connected to a desktop cradle.");
break;
case CradleProtocol.TYPE_HOLSTER:
statusField.setText("Device is connected to a holster cradle.");
break;
case CradleProtocol.TYPE_MULTIMEDIA:
statusField.setText("Device is connected to a multimedia cradle.");
break;
case CradleProtocol.TYPE_SIMPLE:
statusField.setText("Device is connected to a simple cradle.");
break;
default:
statusField.setText("Can't determine type of cradle.");
}
}
else
{
statusField.setText("Device is not connected.");
}
}
}
Gerenciamento de base
Você pode registrar seu aplicativo como um gerenciador de bases. Gerenciador de bases é um aplicativo que pode ser iniciado quando um aparelho BlackBerry é conectado a uma base de um tipo especificado. Por exemplo, se o seu aplicativo fornecer informações locais de viagem, você talvez deseje registrá-lo como um gerenciador para uma base de kit para carros, para que possa ser iniciado automaticamente quando o aparelho for conectado a uma base de kit para carros.
Para registrar seu aplicativo como um gerenciador de bases, use CradleHandlerRegistry.registerHandler(). A classe CradleHandlerRegistry é fornecida no pacote net.rim.blackberry.api.cradle. Ao registrar seu aplicativo, você especifica o tipo de base que deseja gerenciar e o descritor do seu aplicativo. Os tipos de base são definidos como campos na classe CradleProtocol que é fornecida no pacote net.rim.device.api.accessory.
O registro como um gerenciador de bases é persistente. Você deve registrar seu aplicativo apenas uma vez depois que ele é instalado no aparelho.
Se algum gerenciador estiver registrado para um tipo de base, o usuário verá uma caixa de diálogo quando tal base for conectada.

O usuário pode selecionar o gerenciador a ser usado, se aplicável, e o aplicativo gerenciador selecionado é iniciado. O usuário também pode indicar que o aplicativo gerenciador selecionado seja automaticamente iniciado na próxima vez que a base do tipo especificado for conectada.
O usuário pode alterar as configurações do gerenciador de bases no aparelho clicando em Opções > Aplicativos de terceiros, na tela inicial.
Estas informações foram úteis? Gostaríamos de receber seus comentários.