正在做一个毕设,本人做的是手机端,通过检测手机的加速度感应器产生的数值确定手机的状态,并且将状态通过蓝牙或者wifi发送出去,然后进行控制电脑上的游戏。首先手机要发送数据,电脑上的蓝牙监听端要接收:
安卓上的代码如下
if(ExternValues.flagscreen == 0)
                {
if(values[1]>=9)
{
canvas.drawText(state[0],310, paint.getTextSize()*4+100,paint1);
flag = 1;
onflagchanged(flag);
}
else if(values[1]<=1)
{
canvas.drawText(state[1],310, paint.getTextSize()*4+100,paint1);
flag = 2;
onflagchanged(flag);
}
else if(values[0]>=4)
{
canvas.drawText(state[2],310, paint.getTextSize()*4+100,paint1);
flag = 3;
onflagchanged(flag);
}
else if(values[0]<=-2)
    {
canvas.drawText(state[3],310, paint.getTextSize()*4+100,paint1);
flag = 4;
onflagchanged(flag);

    }
else if((values[2]>10)||(values[2]<0))
    {
     canvas.drawText(state[4],310, paint.getTextSize()*4+100,paint1);
     flag = 5;  
     onflagchanged(flag);
    }
就是给flag赋值,然后发送flag 发送flag的代码如下
switch(flag)
{
case 0:
try {
                   outStream = btSocket.getOutputStream();                  } catch (IOException e) {
                     
                  }
                 // message = ExternValues.myphoneid + "1";
                 message = "0";
                 msgBuffer = message.getBytes();               
try {
outStream.write(msgBuffer);
outStream.flush();
flag = 0;
} catch (IOException e1) {
// TODO Auto-generated catch block
flag = 0;
}
                  
                  

                  break;
case 1:
try {
                   outStream = btSocket.getOutputStream();                  } catch (IOException e) {
                     
                  }
                 // message = ExternValues.myphoneid + "1";
                 message = "1";
                 msgBuffer = message.getBytes();               
try {
outStream.write(msgBuffer);
outStream.flush();
flag = 0;
} catch (IOException e1) {
// TODO Auto-generated catch block
flag = 0;
}
                  
                  

                  break;
case 2:
try {
                   outStream = btSocket.getOutputStream();                  } catch (IOException e) {
                     
                  }
                  //message = ExternValues.myphoneid + "2";
if(setflag == 1)
{
  message = "2";
}
else if(setflag == 0)
{
message = "a";
}
                  msgBuffer = message.getBytes();
                  try {
                   
                   outStream.write(msgBuffer);
                   outStream.flush();
                   flag = 0;
                  } catch (IOException e) {
                         
                   flag = 0;
}
                  break;
case 3:
try {
                   outStream = btSocket.getOutputStream();                  } catch (IOException e) {
                     
                  }
                 // message = ExternValues.myphoneid + "3";
                 message = "3";
                 msgBuffer = message.getBytes();                  try {
                   outStream.write(msgBuffer);
                   outStream.flush();
                    flag = 0;
                  
                  } catch (IOException e) {
                   flag = 0;
                  } 
                  break;
case 4:
try {
                   outStream = btSocket.getOutputStream();                  } catch (IOException e) {
                     
                  }
                  //message = ExternValues.myphoneid + "4";
                 message = "4";
                 msgBuffer = message.getBytes();                  try {
                   outStream.write(msgBuffer);
                   outStream.flush();
                     flag= 0;
                  
                  } catch (IOException e) {
                   flag = 0; 
                  } 
                  break;
case 5:
try {
                   outStream = btSocket.getOutputStream();                  } catch (IOException e) {
                     
                  }
                  //message = ExternValues.myphoneid + "5";
                 message = "5";
                 msgBuffer = message.getBytes();                  try {
                   outStream.write(msgBuffer);
                   outStream.flush();
                   flag = 0;
                  
                  } catch (IOException e) {
                         flag = 0;
                  } 
                  break;  
} 代码经测试正常
蓝牙监听端口是用c#写的代码如下
namespace fin
{
    public partial class Form1 : Form
    {
                 public Form1()
        {
            InitializeComponent();
            listenThread = new Thread (blReceiveData);
            listenThread.Start();            
            comboBox1.Items.Add("3D滑雪");
            comboBox1.Items.Add("跑跑卡丁车");
            comboBox1.Items.Add("3D空间奔跑");
            comboBox1.Items.Add("暴力足球");
            comboBox1.Items.Add("男孩女孩打乒乓");
            comboBox1.Items.Add("史酷比冲浪");
            comboBox1.Items.Add("太空版跑跑卡丁车");
            comboBox1.Items.Add("网球王子");
        }
                 [DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
                 private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
                 [DllImport("user32.dll")]
                 static extern bool SetCursorPos(int X, int Y);
                 [DllImport("user32.dll")]
                 static extern void mouse_event(int flags, int dx, int dy, int data, int extraInfo);      
           private void blReceiveData()
           {
            try
            {
                Guid mGUID = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");
                bluetoothListener = new BluetoothListener(mGUID);
                bluetoothListener.Start();
                bluetoothClient = bluetoothListener.AcceptBluetoothClient();
                isConnected = true;
            }
            catch (Exception ex)
            {
                isConnected = false;
                MessageBox.Show(ex.ToString());
            }            while (isConnected)
            {                if (bluetoothClient == null)
                {
                    String ex = "没有接受到信息";
                    MessageBox.Show(ex.ToString());                    break;
                }
                try
                {                    Stream peerStream = bluetoothClient.GetStream();
                    byte[] buffer = new byte[4];
                    peerStream.Read(buffer, 0, 1);
                    string receive = Encoding.UTF8.GetString(buffer).ToString();
                    SetText(receive);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());                }
                Thread.Sleep(100);
            }
        }
        BluetoothClient bluetoothClient;
        BluetoothListener bluetoothListener;
        Thread listenThread;
        bool isConnected;
在有的电脑上可以运行,有的时候突然就不能运行了,有的时候也只能接收到一小段数据。有的时候接收会有延迟。
请问大神,可以给个解释吗??如何调试???在线等!!!跪求~~!!!蓝牙手机连接电脑