我正在为Android手机编写多人游戏。通信是通过蓝牙。我设法使用输入/输出流将字节从一部电话发送到另一部电话。因为我需要能够传输对象我想要objectstreams。但是,当我尝试用我的流创建Objectstream时,我的程序挂在指令上。无法使用InputStream为Android平台上的蓝牙套接字创建ObjectInputStream
public class ConnectedThread extends Thread {
private static final String TAG = "Connected Thread";
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private final OutputStream mmOutStream;
private Handler mHandler;
private ObjectInputStream ois;
private ObjectOutputStream oos;
public ConnectedThread(BluetoothSocket socket,Handler h) {
mmSocket = socket;
mHandler = h;
InputStream tmpIn = null;
OutputStream tmpOut = null;
// Get the input and output streams, using temp objects because
// member streams are final
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} catch (IOException e) { }
mmInStream = tmpIn;
mmOutStream = tmpOut;
Log.d(TAG,"attempting to create OIS");
try {
ois = new ObjectInputStream(mmInStream);
// 指令新ObjectInputStream的(mmInStream)NEVER完成执行。它似乎没有抛出错误,因为我会抓住它。它只是挂在这条指令上。这行下面的代码都没有执行过。
} catch (Exception e) {
Log.e(TAG,"Error");
Log.d(TAG,e.getMessage());
e.printStackTrace();
}
Log.d(TAG,"attempting to create OOS");
try {
oos = new ObjectOutputStream(mmOutStream);
} catch (IOException e) {
Log.e(TAG,"IO exception for Output Stream, I have no idea what caused this");
Log.d(TAG,e.getMessage());
}
}
public void run() {.....}
我在做什么错?
你能举一个例子吗?我有同样的问题,我不太明白你的解决方案... – jpmastermind 2013-03-31 06:00:00
你能否请详细一点。我没有得到你的解决方案。 – 2014-01-16 06:47:36
@Kake请参阅编辑。我不明白这比它更清楚。 – EJP 2014-01-16 06:54:05