sim*_*dam 5 java io android ipc
嗨,我通过两个管道之间的管道发送数据时收到此错误 parcelFileDescriptors
java.io.IOException: write failed: EPIPE (Broken pipe)
at libcore.io.IoBridge.write(IoBridge.java:455)
at java.io.FileOutputStream.write(FileOutputStream.java:187)
at com.google.common.io.ByteStreams.copy(ByteStreams.java:179)
at cz.simekadam.android.securedfileprovider.SecuredFileProvider$Pipe.run(SecuredFileProvider.java:161)
Caused by: libcore.io.ErrnoException: write failed: EPIPE (Broken pipe)
at libcore.io.Posix.writeBytes(Native Method)
at libcore.io.Posix.write(Posix.java:202)
at libcore.io.BlockGuardOs.write(BlockGuardOs.java:197)
at libcore.io.IoBridge.write(IoBridge.java:450)
at java.io.FileOutputStream.write(FileOutputStream.java:187)
at com.google.common.io.ByteStreams.copy(ByteStreams.java:179)
at cz.simekadam.android.securedfileprovider.SecuredFileProvider$Pipe.run(SecuredFileProvider.java:161)
Run Code Online (Sandbox Code Playgroud)
这就是我复制数据的方式.
static class PipeThread extends Thread {
InputStream input;
OutputStream out;
PipeThread(InputStream inputStream, OutputStream out) {
this.input=inputStream;
this.out=out;
}
@Override
public void run() {
try {
ByteStreams.copy(input, out);
input.close();
out.close();
} catch (IOException e) {
Log.e(getClass().getSimpleName(),
"Exception transferring file", e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我发现这些问题可能与缺少root权限有关.我认为这不是我的问题,因为我没有写任何文件夹.示例用例是将我的contentProvider中的图像文件共享到像Skithch这样的应用程序.最重要的是有一件事让我发疯.这个过程成功完成,这意味着共享图像在skitch中打开没有任何问题.我我只是在我的控制台中看到它,我有点意识到它..我猜它不应该在那里:)
编辑:我已经进一步测试了它,当其他应用程序从我的ContentProvider中读取时,它似乎只是可重现的.只有这样才会抛出异常.
| 归档时间: |
|
| 查看次数: |
8008 次 |
| 最近记录: |