单片机0.5秒通过蓝牙发一次数据过来,android开启一个线程进行接收,线程里面是循环接收的,现在接收一次之后就不再接收了,循环也不起作用,这是为什么?部分程序如下
//存储文件并显示的线程
private class saveimageThread extends Thread {
public saveimageThread(BluetoothSocket btSocket) {
while(saveflag==0)
{
InputStream tmpIn =null;
inStream=null;
try {
tmpIn=btSocket.getInputStream();
} catch (IOException e) {
Log.e(TAG,"temp scoket not created",e);
}
inStream=tmpIn;
saveflag=1;
}
}
@Override
public void run() {
while(D) {
int picname=1;
Log.i("saveimage","start");
try{
byte[] buffer=new byte[1024];
//dri为保存路径,SD卡中的carImage文件夹
//从蓝牙获取输入流
while (inStream!=null)
{
Log.e("","InputStream");
int l = -1;
try{
while((l = inStream.read(buffer)) != -1)
//l = inStream.read(buffer);
{
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
outStream.write(buffer,0,buffer.length);
//inStream.close();
byte[] data = outStream.toByteArray();
Log.e("","data is ready!");
略
} //while((l = inStream.read(buffer)) != -1)
}catch (Exception e){
e.printStackTrace();}
//byte[] data=new byte[j-3];
//out.write(buffer,0,buffer.length);
//buffer=null;
break;
} //while (inStream!=null)
} catch (Exception e){
e.printStackTrace();
System.err.println("Can't start");
}
try {
sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //while(D)
}
}