我试图通过蓝牙以编程方式将文本文件从一个Android设备发送到另一个设备。我可以配对和连接,我甚至可以发送一个字符串,但不能发送文件。
这是我基于bluetoothchat示例的实现。
客户端
private void SendFile()
{
// Check that we're actually connected before trying anything
if (service.GetState() != BluetoothService.STATE_CONNECTED)
{
Toast.MakeText(this, Resource.String.not_connected, ToastLength.Short).Show();
return;
}
using (FileStream sourceStream = new FileStream("/storage/sdcard0/test.zip", FileMode.Open, FileAccess.Read))
{
int bufferSize = (int)sourceStream.Length;
byte[] array = new byte[bufferSize];
sourceStream.Read(array, 0, bufferSize);
service.Write(array);
}
}
SERVICE
public void WriteFile(byte[] @out)
{
// Create temporary object
ConnectedThread r;
// Synchronize a copy of the ConnectedThread
lock (this)
{
if (_state != STATE_CONNECTED)
return;
r = connectedThread;
}
// Perform the write unsynchronized
r.WriteFile(@out);
}
public void WriteFile(byte[] buffer)
{
mmOutStream.Write(buffer, 0, buffer.Length);
}
我在代码中遗漏了什么?我是否需要设置一个具有写入目标路径的新目标文件流?当我第一次运行代码时,我看到要传输的字节显示在目标android设备上,但我没有看到文件存储在文件系统中。
我将不胜感激。