Bluetooth 发送少量消息后蓝牙控制器不工作

Bluetooth 发送少量消息后蓝牙控制器不工作,bluetooth,Bluetooth,我有一个简单的蓝牙代码来激活继电器。 它来自一个老项目,过去工作得很好,但我过去只发送了一点,这次我必须发送字符串。 有了这个代码,我可以发送六个命令,然后设备就不再响应了。当我突然停止应用程序时,之前所有“未执行”的命令都由中继板执行。如果我改变缓冲区的大小,它似乎会对我可以发送的消息数量产生一些影响。 我用的是一部旧手机,一个带有安卓2和API 10的控制器 知道我应该去哪里调查吗? 谢谢 公共类菜单扩展活动{ 蓝牙适配器mBluetoothAdapter; 蓝牙插座; 蓝牙设备; 输出流m

我有一个简单的蓝牙代码来激活继电器。 它来自一个老项目,过去工作得很好,但我过去只发送了一点,这次我必须发送字符串。 有了这个代码,我可以发送六个命令,然后设备就不再响应了。当我突然停止应用程序时,之前所有“未执行”的命令都由中继板执行。如果我改变缓冲区的大小,它似乎会对我可以发送的消息数量产生一些影响。 我用的是一部旧手机,一个带有安卓2和API 10的控制器 知道我应该去哪里调查吗? 谢谢

公共类菜单扩展活动{
蓝牙适配器mBluetoothAdapter;
蓝牙插座;
蓝牙设备;
输出流mmOutputStream;
输入流mmInputStream;
字符串a;
可编辑b;
最终字节[]缓冲区=新字节[2048];
专用切换按钮T1;
私有静态最终字符串TAG=“MyActivity”;
公共无效写入(字节[]缓冲区){
试一试{
mmOutputStream.write(缓冲区,0,1024);
mmOutputStream.flush();
}捕获(IOE){}
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
最终ToggleButton T1=(ToggleButton)findViewById(R.id.Button1);
T1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(T1.isChecked()){
//TODO自动生成的方法存根
缓冲区[0]=“r”;
缓冲区[1]=“e”;
缓冲区[2]=“l”;
缓冲区[3]=“a”;
缓冲区[4]=“y”;
缓冲区[5]='';
缓冲区[6]=“o”;
缓冲区[7]=“n”;
缓冲区[8]='';
缓冲区[9]=“0”;
缓冲区[10]='';
缓冲区[11]='\r';
缓冲区[12]='\n';
}
如果(!T1.isChecked()){
//TODO自动生成的方法存根
缓冲区[0]=“r”;
缓冲区[1]=“e”;
缓冲区[2]=“l”;
缓冲区[3]=“a”;
缓冲区[4]=“y”;
缓冲区[5]='';
缓冲区[6]=“o”;
缓冲区[7]=“f”;
缓冲区[8]=“f”;
缓冲区[9]='';
缓冲区[10]=“0”;
缓冲区[11]='\r';
缓冲区[12]='\n';
}
写入buf(缓冲区);
}
});
void findBT()引发IOException
{
mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
如果(!mBluetoothAdapter.isEnabled())
{
意图启用Bluetooth=新意图(BluetoothAdapter.ACTION\u REQUEST\u ENABLE);
startActivityForResult(启用蓝牙,1);
}
设置pairedDevices=mBluetoothAdapter.getBondedDevices();
如果(pairedDevices.size()>0)
{
用于(蓝牙设备:pairedDevices)
{
if(device.getName().equals(a))
{
mmDevice=设备;
打破
}
}
}
UUID UUID=UUID.fromString(“000011101-0000-1000-8000-00805f9b34fb”);//标准//串行端口服务ID
mmSocket=mmDevice.createRfcommSocketToServiceRecord(uuid);
mmSocket.connect();
mmOutputStream=mmSocket.getOutputStream();
mmInputStream=mmSocket.getInputStream();
公共布尔onCreateOptions菜单(菜单){
super.onCreateOptions菜单(菜单);
MenuInflater h=getMenuInflater();
h、 充气(右菜单、硬菜单、菜单);
返回true;
}
public class Menuuu extends Activity {
BluetoothAdapter mBluetoothAdapter;
BluetoothSocket mmSocket;
BluetoothDevice mmDevice;
OutputStream mmOutputStream;
InputStream mmInputStream;
String a;
Editable b;

final byte[] buffer = new byte[2048];
private ToggleButton T1;

private static final String TAG = "MyActivity";


public void write_buf(byte[] buffer) {
    try {
        mmOutputStream.write(buffer, 0, 1024 );
        mmOutputStream.flush();
    } catch (IOException e) { }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    final ToggleButton T1 = (ToggleButton) findViewById(R.id.Button1);
    T1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    if (T1.isChecked()) {
        // TODO Auto-generated method stub
            buffer[0] = 'r';
            buffer[1] = 'e';
            buffer[2] = 'l';
            buffer[3] = 'a';
            buffer[4] = 'y';
            buffer[5] = ' ';
            buffer[6] = 'o';
            buffer[7] = 'n';
            buffer[8] = ' ';
            buffer[9] = '0';
            buffer[10] = ' ';
            buffer[11] = '\r';
            buffer[12] = '\n';
    }
        if (!T1.isChecked()) {
            // TODO Auto-generated method stub
                buffer[0] = 'r';
                buffer[1] = 'e';
                buffer[2] = 'l';
                buffer[3] = 'a';
                buffer[4] = 'y';
                buffer[5] = ' ';
                buffer[6] = 'o';
                buffer[7] = 'f';
                buffer[8] = 'f';
                buffer[9] = ' ';
                buffer[10] = '0';
                buffer[11] = '\r';
                buffer[12] = '\n';
        }
        write_buf(buffer);
        }
});



void findBT() throws IOException
{
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

    if(!mBluetoothAdapter.isEnabled())
    {
        Intent enableBluetooth = new    Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBluetooth, 1);

    }

    Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
    if(pairedDevices.size() > 0)
    {
        for(BluetoothDevice device : pairedDevices)
        {
            if(device.getName().equals(a)) 
            {
                mmDevice = device;
                break;
            }
        }
    }

    UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); //Standard //SerialPortService ID

    mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);

    mmSocket.connect();
    mmOutputStream = mmSocket.getOutputStream();
    mmInputStream = mmSocket.getInputStream();


public boolean onCreateOptionsMenu(Menu menu){
    super.onCreateOptionsMenu(menu);
    MenuInflater h= getMenuInflater();
    h.inflate(R.menu.hardmenu,menu);
    return true;
}