How can I share file descriptor across process using Android binder IPC in C++? Can you post example also?
相关问题
- How can I create this custom Bottom Navigation on
- Bottom Navigation View gets Shrink Down
- How to make that the snackbar action button be sho
- Listening to outgoing sms not working android
- How to create Circular view on android wear?
相关文章
- android开发 怎么把图片放入drawable的文件夹下
- android上如何获取/storage/emulated/下的文件列表
- androidStudio有个箭头不认识
- SQLite不能创建表
- Windows - Android SDK manager not listing any plat
- Animate Recycler View grid when number of columns
- Why is the app closing suddenly without showing an
- Android OverlayItem.setMarker(): Change the marker
In client process we do the following to perform a binder transaction
remote()->transact(MYTRANSACTION, data, &reply, IBinder::FLAG_ONEWAY);
data and reply are of type Parcel. marshall and unmarshalling is done in native android using Parcel objects. It has the functionality to marshall a file descriptor.
data.writeFileDescriptor(fd);
In server process (i.e, Service in android), we call the following method to read the file descriptor in the server process.
int fd = data.readFileDescriptor();
sharing the file descriptor across process will be handled by the binder driver.
Important : duplicate the received file descriptor before the parcel object is destroyed.
You can find the implementation and explanation for native binder at Android-HelloWorldService