求助功能到蓝牙服务

serversocket to bluetooth serversocket

本文关键字:服务 功能      更新时间:2023-10-16

在过去的几天中,我一直在用Android服务器和Windows PC套接字通过蓝牙建立客户端服务器套接字,因此我可以从计算机上发送信息可以在Oculus Gear VR的应用程序上使用(应用在Android上)。我在Android侧的蓝牙服务器套接字上遇到了一个大问题。我对Android Studio的经验大约在4天内被包含在内,这无济于事。我想出了如何在Android应用程序上创建常规服务器套接字,该应用等待客户的连接`公共类Myserver { 蓝牙驱动器设备; 线程m_objthread;

ServerSocket m_server;
String m_strMessage;
DataDisplay m_dataDisplay;
Object m_connected;
public MyServer()
{
}
public void setEventListener(DataDisplay dataDisplay)
{
    m_dataDisplay = dataDisplay;
}
public void startListening()
{
    m_objThread = new Thread(new Runnable() {
        public void run() {
            try {
                m_server = new ServerSocket(2001);
                Socket connectedSocket = m_server.accept();
                Message clientmessage = Message.obtain();
                ObjectInputStream ois = new ObjectInputStream(connectedSocket.getInputStream());
                String strMessage = (String) ois.readObject();
                clientmessage.obj = strMessage;
                mHandler.sendMessage(clientmessage);
                ObjectOutputStream oos = new ObjectOutputStream(connectedSocket.getOutputStream());
                oos.writeObject("Hi..");
                ois.close();
                oos.close();
                m_server.close();
            } catch (Exception e) {
                Message msg3 = Message.obtain();
                msg3.obj = e.getMessage();
                mHandler.sendMessage(msg3);
            }
        }
    });
    m_objThread.start();
}
Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message status)
    {
        m_dataDisplay.Display(status.obj.toString());
    }
};

`但是我不确定如何将其更改为蓝牙服务器套接字以创建蓝牙套接字。任何帮助都得到赞赏,我对编码的新手相对较新,并且仅在Visual Studio上使用C ,因此我在Android Studio上遇到了很多麻烦。谢谢!

您应该创建一个用于接受连接的线程,而另一个线程 - 发送和接收数据。连接设备时,您会停止"连接线程"并启动"传输"线程。Google- https://github.com/googlesamples/android-bluetoothchat

有一个极好的例子