2012-01-17 30 views
2

是否可以將Socket/FileDescriptor從一個活動傳遞到其他應用程序中的其他活動? 我嘗試使用意向,但得到如何將套接字/文件描述符傳遞給Android中的其他應用程序

java.lang.IllegalArgumentException:如果意圖通過文件描述符

請幫幫忙!

+1

當然你可以使用活頁夾服務。
檢查http://stackoverflow.com/questions/14413810/sharing-file-descriptor-using-android-binder。 – videoguy 2014-02-21 00:16:01

+0

可能dup http://stackoverflow.com/a/23775778 – 2016-04-25 16:51:30

回答

-1

簡短的回答是:大概沒有,但是......

活動在其他過程中的其他應用程序運行。我相信,沒有能力將Socket或FileDescriptor從一個進程傳遞到另一個進程 - 無論是Java還是Android。但是,在使用UNIX套接字和SCM_RIGHTS的Linux中是可能的:man unix(7)cmsg(3)。由於Android基於Linux內核,所以可能是,您可以使用C語言編寫此功能並將其傳遞到您的Java代碼(參見Android NDK)。可能的話,你也必須實現你自己的Socket和FileDescriptor版本。總結起來,我認爲你真的不想做這一切。可能是最好的方式 - 審查你的任務,找到另一個更簡單的解決方案。

以防萬一:在一個應用程序中,您可以自由重複使用Sockets和FileDescriptors。例如,使用靜態成員和某種同步意圖。

+0

這是公然不正確的。 [Java_綁定到SCM_RIGHTS](https://developer.android.com/reference/android/net/LocalSocket.html)自從最早的Android版本以來一直存在。 Android自己擁有IPC,Binder,[也有描述符傳遞功能](https://developer.android.com/reference/android/os/Parcel.html#writeFileDescriptor%28java.io.FileDescriptor%29),因爲最早的平臺版本。 – user1643723 2016-04-25 16:45:51

相關問題