У меня есть действие под названием MainActivity и сервис под названием CameraService. CameraService действует как сервер и слушает клиентов через сокет. Всякий раз, когда клиент подключается, Сервис запускает через MainActivity (и BroadcastReceiver) камеру. Когда камера возвращает onActivityResult, она использует выходнойStreamStream (открытый статический атрибут) CameraService для отправки фотографии обратно клиенту.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CAMERA) {</p>
<pre><code> try {
byte[] bufferArray = new byte[(int)path.length()];
Log.i(TAG, "Image size: " + Integer.toString(bufferArray.length));
FileInputStream fis = new FileInputStream(path);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(bufferArray, 0, bufferArray.length);
CameraService.out.write(bufferArray, 0, bufferArray.length);
CameraService.out.flush();
} catch (IOException e) {
Log.i(TAG, e.getMessage());
Log.i(TAG, stackTraceToString(e));
}
Приведенный выше код выполняет отправку фотографии клиенту через CameraService.out OutputStream. Проблема заключается в том, что клиенты сбрасывают соединение (флаг RST tcp), и сервер не может отправить весь образ. Любые идеи, почему это может произойти ??