Afficher du contenu sur un écran de téléphone

Dans l'échantillon de code suivant, le contenu personnalisé est ajouté à l'écran de l'appel entrant en ignorant AbstractPhoneListener.callIncoming(). Vous pouvez afficher le contenu sur les autres écrans d'appel en ignorant callWaiting(), callInitiated() et callAnswered().

Avant de commencer : assurez-vous que les exemples d'application suivants s'exécutent en arrière-plan au démarrage du terminal BlackBerry. Dans BlackBerry Java Plug-in for Eclipse, modifiez le descripteur d'application BlackBerrypour l'exemple d'application. Pour plus d'informations, consultez le guide de développement de BlackBerry Java Plug-in for Eclipse.
  1. Importez les classes et les interfaces requises.
    import net.rim.blackberry.api.phone.*;
    import net.rim.blackberry.api.phone.phonegui.*;
    import net.rim.device.api.system.*;
    import net.rim.device.api.ui.*;
    import net.rim.device.api.ui.component.*;
  2. Créez le cadre d'application en développant la classe Application. Dans le constructeur, appelez Phone.addPhoneListener() pour enregistrer l'écouteur créé à l'étape 3. Dans main(), appelez enterEventDispatcher() pour permettre à l'application de recevoir des événements.
    public final class MyPhoneScreen extends Application
    {
        public MyPhoneScreen()
        {
            Phone.addPhoneListener(new MyPhoneScreenContent());
        }
        public static void main(String[] args)
        {
            new MyPhoneScreen().enterEventDispatcher();
        }
    }
  3. Créez une classe développant la classe AbstractPhoneListener. Créez un constructeur pour cette nouvelle classe.
    final class MyPhoneScreenContent extends AbstractPhoneListener
    {
        public MyPhoneScreenContent()
        {
        }
    }
  4. Dans la classe développant AbstractPhoneListener, ignorez AbstractPhoneListener.callIncoming(). Créez une instance de la classe ScreenModel. Récupérez une instance de l'écran d'appel entrant en appelant ScreenModel.getPhoneScreen(). Transférez des paramètres pour spécifier l'orientation de l'écran d'appel et le type que vous voulez obtenir. Dans l'échantillon de code suivant, l'orientation Portrait de l'écran d'appel entrant est obtenue. Les terminaux avec écran tactile prenant en charge les orientations Portrait et Paysage, transmettez le paramètre PhoneScreen.LANDSCAPE pour faire passer l'écran d'appel entrant à l'orientation Paysage.
    public void callIncoming(int callId)
    {
        ScreenModel screenModel = new ScreenModel(callId);
        PhoneScreen phoneScreenPortrait = screenModel.getPhoneScreen(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING);
    }
  5. Dans callIncoming(), créez le contenu personnalisé à ajouter à l'écran d'appel. Dans l'échantillon de code suivant, le texte est ajouté à l'écran d'appel entrant à l'aide de champs de libellé. Ignorez LabelField.paint() pour modifier la couleur du champ de libellé.
    LabelField labelField1 = new LabelField("Hello") 
    {
        public void paint(Graphics g) 
        {
            g.setColor(Color.GREEN);
            super.paint(g);
        }
    };    
    LabelField labelField2 = new LabelField(" to the World.")
    {
        public void paint(Graphics g)
        {
            g.setColor(Color.RED);
            super.paint(g);
        }
    };
  6. Dans callIncoming(), indiquez la police d'affichage du contenu personnalisé. Dans l'échantillon de code suivant, la police d'affichage de l'écran d'appel est utilisée. Appelez PhoneScreen.getCallerInfoFont() pour obtenir la police d'affichage utilisée par l'écran d'appel. Appelez Field.setFont() et transmettez la police de l'écran d'appel pour indiquer la police d'affichage des champs de libellé créés à l'étape 5. Appelez PhoneScreen.add() pour ajouter les champs de libellé à l'écran d'appel.
    labelField1.setFont(phoneScreenPortrait.getCallerInfoFont());
    labelField2.setFont(phoneScreenPortrait.getCallerInfoFont());
    phoneScreenPortrait.add(labelField1);
    phoneScreenPortrait.add(labelField2);
  7. Dans callIncoming(), appelez ScreenModel.sendAllDataToScreen() pour ajouter le contenu personnalisé à l'écran d'appel entrant.
    screenModel.sendAllDataToScreen();

Échantillon de code : affichage de contenu sur un écran de téléphone

import net.rim.blackberry.api.phone.*;
import net.rim.blackberry.api.phone.phonegui.*;
import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
public final class MyPhoneScreen extends Application
{
    public MyPhoneScreen()
    {
        Phone.addPhoneListener(new MyPhoneScreenContent());
    }
    public static void main(String[] args)
    {
        new MyPhoneScreen().enterEventDispatcher();
    }
}
final class MyPhoneScreenContent extends AbstractPhoneListener
{
    public MyPhoneScreenContent()
    {
    }
    public void callIncoming(int callId)
    {
        ScreenModel screenModel = new ScreenModel(callId);
        PhoneScreen phoneScreenPortrait = screenModel.getPhoneScreen(PhoneScreen.PORTRAIT, PhoneScreen.INCOMING);
        LabelField labelField1 = new LabelField("Hello")
        {
            public void paint(Graphics g)
            {
                g.setColor(Color.GREEN);
                super.paint(g);
            }
        };    
        LabelField labelField2 = new LabelField(" to the World.")
        {
            public void paint(Graphics g)
            {
                g.setColor(Color.RED);
                super.paint(g);
            }
        };
        labelField1.setFont(phoneScreenPortrait.getCallerInfoFont());
        labelField2.setFont(phoneScreenPortrait.getCallerInfoFont());
        phoneScreenPortrait.add(labelField1);
        phoneScreenPortrait.add(labelField2); 
        screenModel.sendAllDataToScreen();
    }
}

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.