Help Center

Local Navigation

Avvio di un'applicazione del dispositivo BlackBerry da BlackBerry Maps

È possibile aggiungere una voce di menu a BlackBerry® Maps per consentire a un utente del dispositivo BlackBerry di avviare un'applicazione utilizzando le informazioni sulla posizione. L'utente del dispositivo BlackBerry può anche cambiare le informazioni sulla posizione e inviarle all'applicazione del dispositivo BlackBerry.
  1. Aprire BlackBerry® Integrated Development Environment.
  2. Creare un progetto.
  3. Fare clic con il pulsante destro del mouse sul progetto e fare clic su Proprietà.
  4. Nella scheda Applicazioni, all'interno del campo Argomenti passati a, digitare startup. Assicurarsi che il valore immesso corrisponda a quello dell'argomento startsWith nel metodo principale dell'applicazione del dispositivo BlackBerry.
  5. Selezionare Avvio automatico.
  6. Selezionare System module.
  7. Fare clic su OK.
  8. Importare le classi seguenti:
    import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import net.rim.blackberry.api.invoke.*; import net.rim.device.api.system.*; import net.rim.blackberry.api.maps.*; import net.rim.blackberry.api.menuitem.*; 
  9. Creare una classe che estenda la classe ApplicationMenuItem e che implementi i metodi run() e toString().
    private static class MapsMenuItem extends ApplicationMenuItem     {         MapsMenuItem()         {                      super(20);         }      public String toString()         {             return "Menu Item Demo";         }                 public Object run(Object context)         {             if (context instanceof MapView )             {                  _mv = (MapView)context;                                 UiApplication app = UiApplication.getUiApplication();                 app.pushScreen( new MapsMenuItemScreen(_mv) );                   app.requestForeground();                   }             return null;         }     }     } 
  10. Nel metodo main(), registra una voce di menu in BlackBerry Maps.
    public static void main(String[] args)  {  if (args != null && args.length > 0)  {   if (args[0].equals("startup"))   {                  ApplicationMenuItemRepository amir = ApplicationMenuItem     Repository.getInstance();    ApplicationDescriptor artup = ApplicationDescriptor     .currentApplicationDescriptor();    ApplicationDescriptor ad_gui = new ApplicationDescriptor     (ad_startup , "gui", new String[]{"gui"});    amir.addMenuItem(ApplicationMenuItemRepository.     MENUITEM_MAPS , new MapsMenuItem() , ad_gui);                    }   else if (args[0].equals("gui"))   {                    MapsMenuItemDemo app = new MapsMenuItemDemo();    app.enterEventDispatcher();                   }  } }  
  11. Creare una schermata per l'applicazione.
    final class MapsMenuItemScreen extends MainScreen {     private MapView _mapview;         private BasicEditField _latitudeField; private BasicEditField _logitudeField; private NumericChoiceField _zoomField;   MapsMenuItemScreen(MapView _mv) {        _mapview = _mv;          _latitudeField = new BasicEditField ("Latitude: " , _mv.getLatitude()     /100000,0 + "" , 9 , BasicEditField.FILTER_REAL_NUMERIC );  _logitudeField = new BasicEditField ("Longitude: ",_mv.getLongitude()    /100000,0 + "" , 10 , BasicEditField.FILTER_REAL_NUMERIC);  _zoomField = new NumericChoiceField ("Zoom: " , 0 ,     MapView.MAX_ZOOM , 1 , _mv.getZoom());   add(_latitudeField);  add(_logitudeField);          add(_zoomField);   add(new SeparatorField());  add(new RichTextField("Edit latitude, longitude and zoom level settings    and select View Map from the menu." , Field.NON_FOCUSABLE));         addMenuItem(viewMapItem);  setTitle("Location Details Screen");      } 
  12. Creare una voce di menu che visualizzi i valori di latitudine, longitudine e zoom dell'oggetto di contesto MapView.
    private MenuItem viewMapItem = new MenuItem("View Map", 1000, 10)  { public void run()  {              _mapview.setZoom( _zoomField.getSelectedValue() );    try    {     int latitude = (int) (100000 * Double.parseDouble      (_latitudeField.getText()));     int longitude = (int) (100000 * Double.parseDouble      (_logitudeField.getText()));     if (latitude > 9000000 || latitude < -9000000 ||       longitude >= 18000000 || longitude < -18000000)     {      throw new IllegalArgumentException ();     }     _mapview.setLatitude(latitude);     _mapview.setLongitude(longitude);     Invoke.invokeApplication(Invoke.APP_TYPE_MAPS,       new MapsArguments(_mapview));     close();    }    catch(RuntimeException re)    {     Dialog.alert("Invalid Longitude and/or Latitude");     _latitudeField.setFocus();     }   } }; 
  13. Inserire i dati nel menu.
    protected void makeMenu( Menu menu, int instance )      {         super.makeMenu( menu, instance );                 if(getFieldWithFocus() == _zoomField)         {             menu.setDefault(1);         } } 

Indice analitico


Le informazioni sono state utili? Inviateci i vostri commenti.