elc*_*uco 5 android-ndk android-intent
我在android下用C++编写本机应用程序,我需要广播一些意图.这可能吗?
如果你打算给我指JNI,请给我更多细节,因为我不知道这是怎么做的:)
如果不可能,我将做的是在NDK守护程序和Java-Android-Service之间使用命名管道.NDK守护程序将写入命名管道,然后Java-Android-Service将发出意图.
有没有更好的办法?
am您可以运行一个命令,将Intent发送到Activities或Services.
const char *cmd = "am startservice -a %s"
" --ei ars_flag 2 --ei invitationType %d"
" --ei mode 1 --es ars_gadget_uuid \"%s\""
" --ei ars_conn_handle %d"
" --es ars_user_uuid \"%s\" --es ars_username \"%s\"";
sprintf (cmdbuffer, cmd, ...);
system (cmdbuffer);
Run Code Online (Sandbox Code Playgroud)
您无法本机发送 Intents,这是当前 NDK 的已知限制(也许将来会实现)。
因此,您要做的就是每当您想要广播 Intent 时,使用 JNI 对 Java 进行向上调用(如果您需要知道这是如何完成的,请谷歌 JNI 和向上调用),并拥有创建和发送 Intent 的 Java 代码。因此,如果您通过 Java Activity 启动应用程序并通过 JNI 调用本机代码,只需在 Java 中实现另一个可以接收上行调用的方法即可。我不知道您了解多少 JNI,但是 wikipedia 信息应该可以帮助您很好地入门。
| 归档时间: |
|
| 查看次数: |
4179 次 |
| 最近记录: |