我有此链接中提到的类似任务的要求。. Android 中对套接字的被动监控。一种方法是解析 /proc/net/{tcp,udp,...} 表。但是我们必须不断地阅读以继续监控;这不是有效的方法。由于它将是一个移动设备应用程序,它会消耗电池,因为它需要 CPU 时间来持续监控时间间隔(比如 1 秒)。
但是,我正在寻找一种基于事件的方法。当我用谷歌搜索相同的内容时,我以 NETLINK 结尾来监视套接字。但我观察到 Android NDK 不支持
#include <linux/sock_diag.h>
#include <linux/inet_diag.h>
#include <linux/unix_diag.h>
#include <linux/packet_diag.h>
#include <linux/netlink_diag.h>
有没有人尝试在 Android 中使用 NETLINK 来监控 INET 套接字?如果是这样,请分享信息。
谢谢。
更新:我尝试将上述文件复制粘贴到“jni”文件夹中并使用 ndk-build 构建。构建成功,运行时也没有崩溃。但是,类型的套接字创建
socket(AF_NETLINK, SOCK_DGRAM, NETLINK_INET_DIAG)
失败并出现错误 EACCES(13) - 创建指定类型和/或协议的套接字的权限被拒绝。
任何建议如何进一步进行?