2016-10-09 12 views
0

이 튜토리얼에 따라 bluecove를 사용하여 Bluetooth 서버를 만들었습니다. http://luugiathuy.com/2011/02/android-java-bluetooth/ 연결 전에 확인 팝업을 JOptionPane과 함께 추가하고 싶지만 어떻게해야할지 모르겠습니다. 나 좀 도와 줄 수있어? 코드는 다음과 같습니다.연결을 수락하는 확인 대화 상자를 표시하려면 bluecove server java

import com.intel.bluetooth.BluetoothStack; 
import javax.bluetooth.DiscoveryAgent; 
import javax.bluetooth.LocalDevice; 
import javax.bluetooth.UUID; 
import javax.microedition.io.Connector; 
import javax.microedition.io.StreamConnection; 
import javax.microedition.io.StreamConnectionNotifier; 
import javax.swing.JOptionPane; 

public class WaitThread implements Runnable { 
    private GestorPrincipal gestor = GestorPrincipal.getInstancia(); 

/** * Constructor */ 
public WaitThread() { } 

@Override 
public void run() { 
    waitForConnection(); 
} 

/** * Waiting for connection from devices */ 
private void waitForConnection() { 
    // retrieve the local Bluetooth device object 
    LocalDevice local = null;  
    StreamConnectionNotifier notifier; StreamConnection connection = null; 
    // setup the server to listen for connection 
    try { 
     local = LocalDevice.getLocalDevice(); 
     local.setDiscoverable(DiscoveryAgent.GIAC); 
     UUID uuid = new UUID(80087355); 
     // "04c6093b-0000-1000-8000-00805f9b34fb" 
     String url = "btspp://localhost:" + uuid.toString() + ";name=RemoteBluetooth"; 
     notifier = (StreamConnectionNotifier) Connector.open(url); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
     return; 
     } 
     // waiting for connection 
     while (true) { 
     try { 
      System.out.println("Esperando la conexion..."); 
      gestor.agregarTexto("Esperando la conexion.."); 
      connection = notifier.acceptAndOpen(); 
      Thread processThread = new Thread(new ProcessConnectionThread(connection)); 
      processThread.start(); 
     } 
     catch (Exception e) { 
      e.printStackTrace(); return; 
      } 
    } 
    } 
}` 

PD : ARG에서 온 죄송합니다.

답변

0

오라클은이 항목을 잘 문서화하여 "대화 상자 만들기"이 문서는 사용자에게 사용자 입력을 요구하는 대화 상자와 아이콘이있는 일부 데이터를 표시하는 대화 상자를 만드는 방법을 보여줍니다 .

http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

는 귀하의 요구에 대한이 같은 것을 할 수있는 :

... 
while (true) { 
     try { 
      System.out.println("Esperando la conexion..."); 
      gestor.agregarTexto("Esperando la conexion.."); 
      connection = notifier.acceptAndOpen(); 
      //Ask user if he/she wants to get connected to this device 
      int userChoice = JOptionPane.showConfirmDialog(
      null, 
      "Would you like to connect to DEVICE_NAME?", 
      "Connection Request", 
      JOptionPane.YES_NO_OPTION); 
      if(userChoice == JOptionPane.YES_OPTION) { 
       // Create thread and come out of loop 
       Thread processThread = new Thread(new ProcessConnectionThread(connection)); 
       processThread.start(); 
       break; 
      } 
      else { 
       // user rejected the connection so close the connection here to allow other devices to connect 
      } 

     } 
     catch (Exception e) { 
      e.printStackTrace(); return; 
      } 
    } 
... 
+0

감사합니다,하지만 내 문제가되지 않습니다. 나는 대화를하는 법을 안다. 내 문제는'notifier.acceptAndOpen();이 잠시 싸우며 대화 상자가 항상 표시된다는 것입니다. – Martin

+0

사용자에게 대화 상자를 표시 하시겠습니까? 대화 상자는 언제 나타나야합니까? 그리고 여러 개의 블루투스 장치를 사용할 수 있다면 사용자는 각 연결에 대해 프롬프트를해야합니까? 사용자가 하나의 연결을 수락하면 루프에서 빠져 나올 수 있습니까? –

+0

"xxxx 장치가 당신과 연결하려고합니다. 당신은 원하십니까?, 예, 아니오"라는 대화 상자를 표시하고 싶습니다. 아무도 연결되어 있지 않은 경우에만 휴대 전화가 내 앱에서 PC와 연결을 시도 할 때 나타납니다. 내 코드가 작동하지만 전화가 서버를 연결하려고 할 때 혼자서받습니다. – Martin