gpt4 book ai didi

android - 从 C 代码发送广播

转载 作者:太空狗 更新时间:2023-10-29 12:41:46 25 4
gpt4 key购买 nike

我有一段 C 代码(不是 NDK 应用程序,纯 C 代码),我正在尝试向我的应用程序发送广播,但我得到的只是:

Broadcasting: Intent { act=com.example.A_NAME }

我从来没有收到完整的消息。

我正在运行的 C 代码是:

    char broadcast[200];
sprintf(broadcast, "sh %s","com.example.A_NAME");
FILE* pipe = popen(broadcast, "r");
char buffer[128];
char result[1500];
while(!feof(pipe)) {
if(fgets(buffer, 128, pipe) != NULL)
sprintf(result, "%s%s", result,buffer);
}
pclose(pipe);

对于一个简单的 bash 脚本,我可以让它工作。从 C 开始,我尝试了 system()execl() 等,但没有任何效果。

我也试过把命令放在脚本文件里,然后执行脚本文件。如果我从 adb shell 执行脚本,它就可以工作。如果我从 C 代码执行它,它不起作用。

最佳答案

在浪费了一天之后,我开始工作了:

system("am broadcast -a com.example.DAMN_BROADCAST --user 0");

--user 0,谢谢你浪费了我一天的时间。

注意:我尝试过的所有命令都应该有效。我只编写了 system 命令,因为它是最简单的命令并且可以完成工作(只要您输入 --user 0)。 execlexeclppipes 应该也能正常工作。

关于android - 从 C 代码发送广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24581245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com