⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 endpoint.java

📁 我自己写的蓝牙例子
💻 JAVA
字号:
import javax.bluetooth.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.*;

public class EndPoint
{
	// 表示该结点代表的远程设备
  RemoteDevice remoteDev;
  // 远程设备的类
  DeviceClass remoteClass;
  // 远程设备的地址
  String remoteUrl;
  // 与该远程设备的联接
  StreamConnection con;
  
  //发现的id号,由searchServices获得( bluetooth discovery transId, obtainsed from searchServices)
  int transId = -1; // -1 must be used for default. cannot use 0
  
   // 对远程设备发送消息的线程
  Sender sender;
  // 对远程设备监听的线程
  Reader reader;
  
  // 本机用户呢称
  String localName;
  
  // 该结点代表的远程用户呢称
  String remoteName;
  
  // 用于回调NetLayer事件(BTListener implementation for callback NetLayer event)
  BTListener callback;

  //与之连接的蓝牙接口层
  NetLayer btnet;
  
  // vector of ChatPacket pending to be sent to remote service.
  // 存储即将发送的消息,发送后移除(when message is sent, it is removed from the vector.)
  Vector msgs = new Vector();
  
  //初始化终结点,对一个远程设备进行绑定,以及与之相关的蓝牙接口层和联接
   public EndPoint( NetLayer btnet, RemoteDevice rdev, StreamConnection c )
  {
  	
    this.btnet = btnet;

    remoteDev = rdev;

    try {
      // NOTE in 6600, this parameter must be false because
      // according to some observation from other developer
      // setting this to true mean the Bluetooth system need to make
      // another connection to remote device, however, there is no available
      // free connection, so it will give you exception
      remoteName = rdev.getFriendlyName(false); // this is a temp name
    }
    catch (IOException ex) {
      remoteName = "Unknown";
      // ignore
    }
    localName = btnet.localName;
    callback = btnet.callback;
    con = c;

    sender = new Sender();
    sender.endpt = this;

    reader = new Reader();
    reader.endpt = this;

  }
  
    public synchronized void putString( int signal, String s )
  {
    //将消息放入队列中,准备发送
    msgs.addElement( new ChatPacket( signal, s ) );
    synchronized( sender )
    {
      // 告知发送线程准备发送
      sender.notify();
    }
  }

  public synchronized ChatPacket getString()
  {
    if ( msgs.size() > 0 )
    {
      // 如果有消息存在则取出消息,并移出消息矢量
      ChatPacket s = (ChatPacket) msgs.firstElement();
      msgs.removeElementAt(0);
      return s;
    } else
    {
      // 如果没任何消息返回 null
      return null;
    }
  }


//检测消息矢量中是否有消息
  public synchronized boolean peekString()
  {
    return ( msgs.size() > 0 );
  }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -