SlideShare uma empresa Scribd logo
1 de 17
Mark your agenda for JavaPolis 2006
       December 11th till 15th




JAVAPOLIS
   2006
December 11th till 15th
Bluetooth remote interface for
          JAVA ME
      Breaking digital barriers!


                 Stefano Sanna
                 Researcher
                 CRS4
          www.javapolis.com
Who I am...
• Stefano Sanna is Researcher at CRS4,
  Network Distributed Applications group,
  Mobile Computing team
• Stefano Sanna is technical writer for
  computer magazines “DEV”, “Computer
  Programming” and “Free Software
  Magazine”
• Finally, he is active member of the Java
  Mobile Developers Forum and JUG
  Sardegna
                  www.javapolis.com
Bluetooth in the Java ME world...
• JCP released the “J2ME API for
  Bluetooth” (JSR-82)
• JSR-82 provides:
  – Basic services: discovering, rfcomm
    connection, security
  – OBEX support (optional)
• However...
  – JSR-82 is general purpose (as Socket for
    networking)
                   www.javapolis.com
Blix: the fast way to Bluetooth
interface
• Blix provides a simple API:
  – Client side: set of methods to send events
    related to keyboard, mouse, clipboard, other
    custom commands
  – Server side: well-known observer pattern to
    receive notifications about UI events and
    process custom commands
• Blix is built on top of standard JSR-82
                   www.javapolis.com
Blix Architecture

       Custom                                     Custom
       MIDlet                                   Application
     (controller)                               (controlled)


                                                  events Listener



        BLIX                                        BLIX

JSR-82 Implementation                       JSR-82 Implementation

                        www.javapolis.com
Blix requirements
• Java ME SDK with Bluetooth API support
• Mobile:
  – Java ME device JSR-82 implementation
• Workstation:
  – Any JSR-82 implementation for Java SE
    • Avetana provides free GPL-based version of their
      protocol stack (http://www.avetana.de)



                     www.javapolis.com
Receiving remote controller events
Create the server endpoint
// service number and name
int service = 12;
String name = “My Controller”;

// setup endpoint
BlixEndPoint ep
     = BlixEndPoint.createServer(service, name);


// be ready to listen for events! :-)
ep.setEndPointListener(myListener);


// you are ready to communicate!
                    www.javapolis.com
The EndPointListener interface
 public interface EndPointListener {

     public void connectionEstablished();
     public void connectionLost();

     public   void   keyPressed(int keycode);
     public   void   keyReleased(int keycode);
     public   void   keyTyped(int keycode);
     public   void   keyRepeated(int keycode);
     ...
     public   void snapshotRequested();
     ...
     public   void messageReceived(Message message);

 }

                          www.javapolis.com
Sending remote controller events
Create the client endpoint
// address of server endpoint
String BD_ADDR = “00:11:22:AA:BB:CC”;

// service number assigned to your service
int service = 12;


BlixEndPoint ep;

ep = BlixEndPoint.createClient(BD_ADDR, service);


// you are ready to communicate!


                     www.javapolis.com
BlixEndPoint methods
Invoke them to dispatch event to the
remote device
public void sendKeyPressed(int keycode) {...}

public void sendKeyReleased(int keycode) {...}

public void sendKeyTyped(int keycode) {...}

public void sendKeyRepeated(int keycode) {...}

...

public void sendSnapshot(byte[] image) {...}

// for custom messages:
public void sendMessage(Message message) {...}
                     www.javapolis.com
Simple Bluetooth presenter


                                                  Custom
                                                Application
                                                (controlled)

                                                       Listener



        BLIX                                        BLIX


JSR-82 Implementation                       JSR-82 Implementation
                        www.javapolis.com
AWT strikes back!
• The java.awt.Robot provides methods to
  generate UI events on host machine:
  – Key press & release
  – Mouse move, click and wheel scroll
• We can map mobile phone events to PC
  keyboard:
  – 7 --> PAGE UP
  – 9 --> PAGE DOWN

                   www.javapolis.com
This is the keyTyped method defined by
Using the Robot                     the EndPointListener interface



public void keyTyped(int keycode) {
  switch(keycode) {

    // key 7 on Java ME
    case 55:
      robot.keyPress(KeyEvent.VK_PAGE_UP);
      robot.keyRelease(KeyEvent.VK_PAGE_UP);
      break;

    // key 9 on Java ME
    case 57:
      robot.keyPress(KeyEvent.VK_PAGE_DOWN);
      robot.keyRelease(KeyEvent.VK_PAGE_DOWN);
      break;
    }
}
                    www.javapolis.com
Blix applications
• Support for users with disabilities
• Remote controller for CarPC applications
• Configuration and management for
  embedded devices without UI (vending
  machines, routers...)
• Security controllers: you can hide server
  endpoint and address it directly from your
  remote controller
                  www.javapolis.com
Blix is open source!
• Source code will be available in Jan 2006.
  Check:
  – https://blix.dev.java.net/
• We provide the communication library and
  some sample application. If you intend to
  use Blix for your projects and you like to
  share your experience, please contact us:
  gerda@crs4.it
                     www.javapolis.com
Mark your agenda for JavaPolis 2006
       December 11th till 15th




JAVAPOLIS
   2006
December 11th till 15th

Mais conteúdo relacionado

Mais de Stefano Sanna

Mobile Security su Android - LinuxDay 2018
Mobile Security su Android - LinuxDay 2018Mobile Security su Android - LinuxDay 2018
Mobile Security su Android - LinuxDay 2018Stefano Sanna
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldStefano Sanna
 
Android Things Linux Day 2017
Android Things Linux Day 2017 Android Things Linux Day 2017
Android Things Linux Day 2017 Stefano Sanna
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in actionStefano Sanna
 
Enlarge your screen: introducing the Google TV
Enlarge your screen: introducing the Google TVEnlarge your screen: introducing the Google TV
Enlarge your screen: introducing the Google TVStefano Sanna
 
NFC: tecnologia e applicazioni
NFC: tecnologia e applicazioniNFC: tecnologia e applicazioni
NFC: tecnologia e applicazioniStefano Sanna
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione AvanzataStefano Sanna
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsStefano Sanna
 
Android & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniAndroid & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniStefano Sanna
 
Application Store: opportunita' e trappole
Application Store: opportunita' e trappoleApplication Store: opportunita' e trappole
Application Store: opportunita' e trappoleStefano Sanna
 
Android Bluetooth Hacking
Android Bluetooth HackingAndroid Bluetooth Hacking
Android Bluetooth HackingStefano Sanna
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open HardwareStefano Sanna
 
Playing with Mobile 2.0
Playing with Mobile 2.0Playing with Mobile 2.0
Playing with Mobile 2.0Stefano Sanna
 
Comunicazione Pervasiva
Comunicazione PervasivaComunicazione Pervasiva
Comunicazione PervasivaStefano Sanna
 
Introduzione alla tecnologia Sun SPOT
Introduzione alla tecnologia Sun SPOTIntroduzione alla tecnologia Sun SPOT
Introduzione alla tecnologia Sun SPOTStefano Sanna
 
Sensoristica Avanzata per Dispositivi Mobili
Sensoristica Avanzata per Dispositivi MobiliSensoristica Avanzata per Dispositivi Mobili
Sensoristica Avanzata per Dispositivi MobiliStefano Sanna
 
Introducing the Sun SPOTs
Introducing the Sun SPOTsIntroducing the Sun SPOTs
Introducing the Sun SPOTsStefano Sanna
 

Mais de Stefano Sanna (20)

Mobile Security su Android - LinuxDay 2018
Mobile Security su Android - LinuxDay 2018Mobile Security su Android - LinuxDay 2018
Mobile Security su Android - LinuxDay 2018
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical world
 
Android Things Linux Day 2017
Android Things Linux Day 2017 Android Things Linux Day 2017
Android Things Linux Day 2017
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in action
 
Enlarge your screen: introducing the Google TV
Enlarge your screen: introducing the Google TVEnlarge your screen: introducing the Google TV
Enlarge your screen: introducing the Google TV
 
Introduzione ad NFC
Introduzione ad NFCIntroduzione ad NFC
Introduzione ad NFC
 
NFC: tecnologia e applicazioni
NFC: tecnologia e applicazioniNFC: tecnologia e applicazioni
NFC: tecnologia e applicazioni
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
HCIM08 - Mobile Applications
HCIM08 - Mobile ApplicationsHCIM08 - Mobile Applications
HCIM08 - Mobile Applications
 
Android & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniAndroid & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioni
 
Application Store: opportunita' e trappole
Application Store: opportunita' e trappoleApplication Store: opportunita' e trappole
Application Store: opportunita' e trappole
 
Android Bluetooth Hacking
Android Bluetooth HackingAndroid Bluetooth Hacking
Android Bluetooth Hacking
 
Android
AndroidAndroid
Android
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open Hardware
 
Playing with Mobile 2.0
Playing with Mobile 2.0Playing with Mobile 2.0
Playing with Mobile 2.0
 
Sun SPOT
Sun SPOTSun SPOT
Sun SPOT
 
Comunicazione Pervasiva
Comunicazione PervasivaComunicazione Pervasiva
Comunicazione Pervasiva
 
Introduzione alla tecnologia Sun SPOT
Introduzione alla tecnologia Sun SPOTIntroduzione alla tecnologia Sun SPOT
Introduzione alla tecnologia Sun SPOT
 
Sensoristica Avanzata per Dispositivi Mobili
Sensoristica Avanzata per Dispositivi MobiliSensoristica Avanzata per Dispositivi Mobili
Sensoristica Avanzata per Dispositivi Mobili
 
Introducing the Sun SPOTs
Introducing the Sun SPOTsIntroducing the Sun SPOTs
Introducing the Sun SPOTs
 

Último

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Último (20)

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Bluetooth remote interface for Java ME

  • 1. Mark your agenda for JavaPolis 2006 December 11th till 15th JAVAPOLIS 2006 December 11th till 15th
  • 2. Bluetooth remote interface for JAVA ME Breaking digital barriers! Stefano Sanna Researcher CRS4 www.javapolis.com
  • 3. Who I am... • Stefano Sanna is Researcher at CRS4, Network Distributed Applications group, Mobile Computing team • Stefano Sanna is technical writer for computer magazines “DEV”, “Computer Programming” and “Free Software Magazine” • Finally, he is active member of the Java Mobile Developers Forum and JUG Sardegna www.javapolis.com
  • 4. Bluetooth in the Java ME world... • JCP released the “J2ME API for Bluetooth” (JSR-82) • JSR-82 provides: – Basic services: discovering, rfcomm connection, security – OBEX support (optional) • However... – JSR-82 is general purpose (as Socket for networking) www.javapolis.com
  • 5. Blix: the fast way to Bluetooth interface • Blix provides a simple API: – Client side: set of methods to send events related to keyboard, mouse, clipboard, other custom commands – Server side: well-known observer pattern to receive notifications about UI events and process custom commands • Blix is built on top of standard JSR-82 www.javapolis.com
  • 6. Blix Architecture Custom Custom MIDlet Application (controller) (controlled) events Listener BLIX BLIX JSR-82 Implementation JSR-82 Implementation www.javapolis.com
  • 7. Blix requirements • Java ME SDK with Bluetooth API support • Mobile: – Java ME device JSR-82 implementation • Workstation: – Any JSR-82 implementation for Java SE • Avetana provides free GPL-based version of their protocol stack (http://www.avetana.de) www.javapolis.com
  • 8. Receiving remote controller events Create the server endpoint // service number and name int service = 12; String name = “My Controller”; // setup endpoint BlixEndPoint ep = BlixEndPoint.createServer(service, name); // be ready to listen for events! :-) ep.setEndPointListener(myListener); // you are ready to communicate! www.javapolis.com
  • 9. The EndPointListener interface public interface EndPointListener { public void connectionEstablished(); public void connectionLost(); public void keyPressed(int keycode); public void keyReleased(int keycode); public void keyTyped(int keycode); public void keyRepeated(int keycode); ... public void snapshotRequested(); ... public void messageReceived(Message message); } www.javapolis.com
  • 10. Sending remote controller events Create the client endpoint // address of server endpoint String BD_ADDR = “00:11:22:AA:BB:CC”; // service number assigned to your service int service = 12; BlixEndPoint ep; ep = BlixEndPoint.createClient(BD_ADDR, service); // you are ready to communicate! www.javapolis.com
  • 11. BlixEndPoint methods Invoke them to dispatch event to the remote device public void sendKeyPressed(int keycode) {...} public void sendKeyReleased(int keycode) {...} public void sendKeyTyped(int keycode) {...} public void sendKeyRepeated(int keycode) {...} ... public void sendSnapshot(byte[] image) {...} // for custom messages: public void sendMessage(Message message) {...} www.javapolis.com
  • 12. Simple Bluetooth presenter Custom Application (controlled) Listener BLIX BLIX JSR-82 Implementation JSR-82 Implementation www.javapolis.com
  • 13. AWT strikes back! • The java.awt.Robot provides methods to generate UI events on host machine: – Key press & release – Mouse move, click and wheel scroll • We can map mobile phone events to PC keyboard: – 7 --> PAGE UP – 9 --> PAGE DOWN www.javapolis.com
  • 14. This is the keyTyped method defined by Using the Robot the EndPointListener interface public void keyTyped(int keycode) { switch(keycode) { // key 7 on Java ME case 55: robot.keyPress(KeyEvent.VK_PAGE_UP); robot.keyRelease(KeyEvent.VK_PAGE_UP); break; // key 9 on Java ME case 57: robot.keyPress(KeyEvent.VK_PAGE_DOWN); robot.keyRelease(KeyEvent.VK_PAGE_DOWN); break; } } www.javapolis.com
  • 15. Blix applications • Support for users with disabilities • Remote controller for CarPC applications • Configuration and management for embedded devices without UI (vending machines, routers...) • Security controllers: you can hide server endpoint and address it directly from your remote controller www.javapolis.com
  • 16. Blix is open source! • Source code will be available in Jan 2006. Check: – https://blix.dev.java.net/ • We provide the communication library and some sample application. If you intend to use Blix for your projects and you like to share your experience, please contact us: gerda@crs4.it www.javapolis.com
  • 17. Mark your agenda for JavaPolis 2006 December 11th till 15th JAVAPOLIS 2006 December 11th till 15th