6
我正在写一个小程序,通过蓝牙在Android和PC之间发送文件。我已经 在google android网站上阅读蓝牙聊天的例子。Android蓝牙发送文件问题
目前,我的版本的作品真的很好通过蓝牙发送文本消息,但是当我把周围> = 20 KB一些文件,它停止工作,并为下面扔EOFException类:
java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.readFully(ObjectInputStream.java:2716)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1665)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at com.test.pcserver.BluetoothServerListener.run(BluetoothServerListener.java:74)
at java.lang.Thread.run(Thread.java:636)
目前,
在Android中:
// Get the BLuetoothDevice object
if (BluetoothAdapter.checkBluetoothAddress(address)) {
device = mBtAdapter.getRemoteDevice(address);
// Get a BluetoothSocket for a connection with the
// given BluetoothDevice
socket = device .createRfcommSocketToServiceRecord(ProgramConstants.BLUETOOTH_UUID);
socket.connect();
out = new ObjectOutputStream(socket.getOutputStream());
// Send it to PC
out.writeObject(contentObject);
out.flush();
}
0123使用
bluecove-2.1.0
这里是我的主要代码在PC上我的java程序
在我的电脑,我的理解是:
PC版本,服务器
StreamConnectionNotifier streamConnNotifier = null;
// Create the service url
String connectionString = "btspp://localhost:" + ProgramConstants.BLUETOOTH_UUID.toString()
+ ";name=myappname";
// open server url
streamConnNotifier = (StreamConnectionNotifier) Connector.open(connectionString);
while (true) {
// Wait for client connection
StreamConnection connection = streamConnNotifier.acceptAndOpen();
ObjectInputStream in = new ObjectInputStream(connection.openInputStream());
RemoteDevice dev = RemoteDevice.getRemoteDevice(connection);
// read string from spp client
DataInController data = new DataInController(model);
data.processDataIn(in.readObject(), dev.getBluetoothAddress());
}
ProgramConstants.BLUETOOTH_UUID.toString()的值是什么? – Milhous 2011-06-23 19:59:33
你有没有得到这个工作? – Jack 2011-08-11 19:16:22
嘿,你可以请分享你的完整源代码。提前致谢。 – anddev 2012-03-29 05:52:18