我试图冲动我的蓝牙加密狗,看它是否是范围。 我的Android每秒钟都会向加密狗发送一个字符,然后用一个字符进行响应。如果没有响应,或者字符错误,那么它应该断定没有连接。安卓到外部蓝牙轮询
我可以从Android发送到加密狗(连接到MCU),并且加密狗能够响应。 所有我需要的是一个简单的方法来读取每个字符(当收到)来比较它。我试图在一个单独的线程中使它在自己的循环中运行。
这是我的代码,但我想我可能会关闭,所以如果你能给我一个指针!
void readFromInputStream()
{
Thread readFromInputStream = new Thread()
{
public void run()
{
String streng = "";
try
{
//just 100 times for now
for(int i = 0; i < 100; i++)
{
BufferedReader in = new BufferedReader(new InputStreamReader(inStream));
if(in.read() == 'z')
{
//set variable or something
}
else
{
//do something else
}
writeTerminal('z');
sleep(1000);
}
}
catch(Exception e)
{
Log.e("Threading", e.toString());
}
finally
{
finish();
}
}
};
readFromInputStream.start();
}
}
但它似乎每次我尝试和评估它冻结的东西!
对不起,我无法提供Q手头,但您可能希望在Android上使用轮询时有点小心 - 您会杀死电池,特别是每1秒轮询一次。 – Basic 2010-11-09 09:25:11
其实我宁愿避开轮询部分,但我希望断开蓝牙适配器(不是android蓝牙)在尝试写入时会抛出异常,但它似乎不起作用,所以我想出来了用投票解决方案......感叹! – Chizpa 2010-11-09 15:57:40
尝试执行设备发现/查询或远程名称请求,以检查设备是否在范围内... – 2010-11-09 19:48:30