Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [J2ME] Ricerca dispositivi bluetooth

    Ciao a tutti,
    sto cercando di realizzare un'applicazione per ricercare dei dispositivi bluetooth e in caso inviare un file.
    Di Java non so molto, comunque, trovando dei sorgenti in giro per il web sono riuscito a ottenere qualcosa e ho questa situazione:
    quando avvio il programma con il Wireless Toolkit, il telefono(dell'emulatore) inizia a fare la ricerca e mi stampa a video dei messaggi attraverso l'oggetto Form che passo al costruttore della classe RicercaBT.

    Ora, quando cerco di installare il Jar in un nokia E71, nonostante le configurazioni del progetto CLDC(1.1) e MIDP(2.0) siano giuste, ottengo l'errore sul telefono "il Jar non è supportato" e, di conseguenza, l'applicazione non viene installata.

    L'applicazione viene, invece, installata se al posto di usare myform.append(..) uso dei System println nella classe RicercaBT(???????).

    Classe della Midlet
    codice:
    package cap3;
    
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
     
    import java.util.*;
    import javax.bluetooth.*;
    import javax.microedition.lcdui.Form;
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    
    
    public class HelloWorldMidlet extends MIDlet implements CommandListener {
    
    	/*
    	 * Label per l'uscita dall'applicazione
    	 */
    	private final static String EXIT_LABEL = "esci";
    	
    
    	/**
    	 * Costruttore di default
    	 */
    	public HelloWorldMidlet() {
    	}
    
    	/**
    	 * Metodo che viene invocato all'avvio della Midlet
    	 */
    	public void startApp() {
    		Form displayable = new Form("Ricerca dispositivi");
    		Command exitCommand = new Command(EXIT_LABEL, Command.EXIT, 1);
    		displayable.addCommand(exitCommand);
    		displayable.setCommandListener(this);
    		Display.getDisplay(this).setCurrent(displayable);
    		System.out.println(
                    "Connecting to ");
    		
    		try {
    		RicercaBT client = new RicercaBT(displayable);
    		} catch(BluetoothStateException e)
    		{
    			e.printStackTrace();
    		}
    
    	}// fine
    
    	/**
    	 * Metodo che viene invocato alla pressione del tasto exit
    	 */
    	public void commandAction(Command c, Displayable d) {
    		// Se viene premuto il pulsante di uscita si esce dall'applicazione
    		if (EXIT_LABEL.equals(c.getLabel())) {
    			destroyApp(true);
    			notifyDestroyed();
    		}// fine if
    	}// fine
    
    	/**
    	 * Metodo invocato nel caso in cui la Midlet venga messa in pausa
    	 */
    	public void pauseApp() {
    	}// fine
    
    	/**
    	 * Metodo invocato nel caso di chiusura della Midlet
    	 */
    	public void destroyApp(boolean unconditional) {
    	}// fine
    	
    }// fine Midlet
    Classe per la ricerca Bluetooth
    codice:
    package cap3;
    import java.io.*;
    import java.util.*;
    import javax.microedition.io.*;
    import javax.bluetooth.*;
    import javax.microedition.lcdui.Form;
    
    import javax.obex.*;
    
    public class RicercaBT implements DiscoveryListener {
        LocalDevice local = null;
        DiscoveryAgent agent = null;
        int[] attrSet = null;
        RemoteDevice btDev = null;
        String serviceURL = null;
        ClientSession con = null;
        HeaderSet hdr = null;
        Form myform = null;
        
         public RicercaBT(Form myf) throws BluetoothStateException{
     
            // initialize the stack, if needed
    	  local = LocalDevice.getLocalDevice();
         	  agent = local.getDiscoveryAgent();
         	  agent.startInquiry(DiscoveryAgent.GIAC, this);
              myform = myf;
         }
    	
         public void deviceDiscovered(RemoteDevice btDevice,DeviceClass cod){
         	  btDev = btDevice;
         	  myform.append("Device discovered " +
              btDevice.getBluetoothAddress());
         }
    
         public void servicesDiscovered(int transID, ServiceRecord[] servRecord){
         	  myform.append("Discovered a service ....");
         	  for(int i =0; i < servRecord.length; i++){
         	     serviceURL = 
              servRecord[i].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT,
                 true);	
         	     myform.append("The service URL is " + serviceURL);
         	  }
         }
    
         public void serviceSearchCompleted(int transID, int respCode){
         	  myform.append("Service search completed ........... ");
         	  myform.append("Opening a connection with the server ....");
         	  try{
         	    con = (ClientSession)Connector.open(serviceURL);
         	    hdr = con.connect(hdr);
         	    myform.append("Response code of the server after connect..." +
                hdr.getResponseCode());
    
    
         	    //Sending a request to server for file Hello.txt
         	    hdr = con.createHeaderSet(); 
         	    hdr.setHeader(HeaderSet.TYPE,"text/vCard");
         	    hdr.setHeader(HeaderSet.NAME,"Hello.txt");
         	    Operation op = con.get(hdr);
    
         	    //The server is now sending the file 
         	    InputStream in = op.openInputStream();
    
    
         	    // Writing the file from server to local file system. 
    	    StreamConnection filestream = 
              (StreamConnection)Connector.open("file://name=HelloFile.txt;mode=w");
    	    OutputStream out = filestream.openOutputStream();
    
                //read and write the data
                int data = in.read();
                while(data != -1){
                   out.write((byte)data);
                   data = in.read();
                }
    
                // send the DISCONNECT Operation
                //con.disconnect();
    
                // cleanup
    	      op.close();
                in.close();
                out.close();
         	 }
         	 catch(IOException e){
         	 	myform.append(e.getMessage());
         	 }
         }
         public void inquiryCompleted(int discType){
         	  myform.append("Inquiry completed ... ");
         	  UUID[] uuids = new UUID[1];
            uuids[0] = new UUID("1106",true);
            try{
               if(btDev == null){
    	       myform.append("No device has been discovered, " +
                  "hence not worth proceeding exiting .... ");
    	       System.exit(1);
         	   }
         	   myform.append("Now searching for services ........ ");
         	   agent.searchServices(attrSet, uuids, btDev, this);
         	}
         	catch(BluetoothStateException e) {myform.append(e.getMessage());}
         }
    /*
         public static void main(String args[]) throws IOException {
         	  FTClient client = new FTClient();
         }
    */	
    }
    Che hanno quei myform.append() di male???

    Vi ringrazio ancitipatamente e auguri!!!
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  2. #2
    up
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.