我正在开发一个Android应用程序。该应用程序应该与蓝牙(BT)设备通信(发送一些字节)。我在调试/运行此应用程序时遇到了问题,我的设备(三星Galaxy mini)出现了问题。当我创建一个BT套接字并停止调试时,手机会冻结,我必须通过取出电池来重新启动它。如果从Eclipse运行此应用程序,则一切正常,但是当我尝试再次运行它时,电话会冻结并且应用程序未安装。如果我尝试在第二次运行之前手动卸载此应用程序,则电话再次冻结。以下是有问题的代码:
这是一个线程的构造器。当我注释掉这行代码时,
private final BluetoothDevice mmDevice;
private UUID uuid;
public ConnectionThread(BluetoothDevice device) {
Log.d(TAG, "create ConnectionThread");
uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
BluetoothSocket tmp = null;
mmDevice = device;
try {
tmp = mmDevice.createRfcommSocketToServiceRecord(uuid);
} catch (IOException e) { }
mmSocket = tmp;
socketConnected = true;
}
这是一个线程的构造器。当我注释掉这行代码时,
……
tmp = mmDevice.createRfcommSocketToServiceRecord(uuid);
手机没有冻结,问题出在创建套接字上(不是连接)。每次调试或运行后重启手机非常麻烦,而且我还有很多工作要做。
如果我从手机上运行这个应用程序(未连接到Eclipse),它可以无问题地运行。任何解决方法或建议吗?谢谢。