simple/
simple.rs

1extern crate binder_rust;
2use binder_rust::{Parcel, ServiceManager};
3
4fn main() {
5    let mut service_manager = &mut ServiceManager::new();
6
7    let mut package_manager = service_manager.get_service("myservice", "com.example.IMyService");
8
9    let mut parcel = Parcel::empty();
10    parcel.write_str16("Hello World");
11    let mut res = package_manager.call(1, &mut parcel);
12    println!("response: {:?}", res.read_str16());
13
14    let mut parcel = Parcel::empty();
15    parcel.write_str16("/data/local/tmp/testfile");
16    let mut res = package_manager.call(2, &mut parcel);
17    let fd = res.read_file_descriptor();
18    unsafe {
19        nix::libc::write(fd, "Hello world".as_ptr() as *const std::ffi::c_void, 11);
20    }
21}
22