1

我想将从本机获得的文件描述符(int)转换为文件描述符(Java对象)

//native

int fd = open(......);

为什么示例 1 不起作用?也许理论上?

//eg 1:

FileDescriptor mFd = ParcelFileDescriptor.adoptFd(fd).getFileDescriptor();

//eg 2:

FileDescriptor mFd = new FileDescriptor()
Method setFd = FileDescriptor.class.getDeclaredMethod("setInt$", int.class);
setFd.setAccessible(true);
setFd.invoke(mFd, fd);

微软:</p>

将原始原生 fd 的所有权放入新的 ParcelFileDescriptor。

C#

[Android.Runtime.Register("adoptFd", "(I)Landroid/os/ParcelFileDescriptor;", "")]

公共静态 Android.OS.ParcelFileDescriptor?AdoptFd (int fd);

参数 fd Int32 ParcelFileDescriptor 应采用的本机 fd。

退货

包裹文件描述符

返回一个新的 ParcelFileDescriptor,其中包含给定 fd 的 FileDescriptor。

属性 RegisterAttribute

https://docs.microsoft.com/zh-cn/dotnet/api/android.os.parcelfiledescriptor.adoptfd?view=xamarin-android-sdk-12

4

0 回答 0