是否可以将Socket / FileDescriptor从一个活动传递到其他应用程序中的其他活动? 我尝试使用Intent但是
java.lang.IllegalArgumentException:在Intent
中传递的文件描述符
请帮忙!
答案 0 :(得分:0)
当然可以 - 使用内容提供商。你必须创建自己的内容提供商并覆盖其方法openFile。请阅读此处,例如:http://www.grokkingandroid.com/handling-binary-data-with-contentproviders/
答案 1 :(得分:-1)
简短的回答是:可能没有,但是......
其他应用程序中的活动在另一个进程中运行。我相信,没有能力将Socket或FileDescriptor从一个进程传递到另一个进程 - 无论是在Java还是在Android中。但是在Linux中使用UNIX套接字和SCM_RIGHTS是可能的:man unix(7),cmsg(3)。由于Android基于Linux内核,可能,您可以在C中编写此功能,并使用JNI将其传递给Java代码(请参阅Android NDK)。可能,您还必须实现自己的Socket和FileDescriptor版本。总而言之,我认为你真的不想做到这一切。可能是最好的方法 - 检查您的任务并找到另一种更简单的解决方案。
以防万一:在一个应用程序中,您可以自由地重用Sockets和FileDescriptors。例如,使用静态成员和某种同步Intents。