このリンクに記載されているのと同様のタスクが必要です。. Android でのソケットのパッシブ モニタリング。1 つの方法は、/proc/net/{tcp,udp,...} テーブルを解析することです。しかし、監視を続けるためには、継続的に読み続ける必要があります。これは効率的な方法ではありません。これはモバイル デバイス アプリになるため、時間間隔 (たとえば 1 秒) の監視を続けるために CPU 時間を必要とするため、バッテリーを消費します。
しかし、私はイベントベースのアプローチを探しています。同じことについてグーグルで調べたところ、ソケットを監視するために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>
INETソケットを監視するためにAndroidでNETLINKを使用しようとした人はいますか? もしそうなら、情報を共有してください。
ありがとう。
更新: 上記のファイルを「jni」フォルダーにコピーして貼り付け、ndk-build を使用してビルドしようとしました。ビルドは成功し、実行時のクラッシュもありませんでした。ただし、型のソケット作成
socket(AF_NETLINK, SOCK_DGRAM, NETLINK_INET_DIAG)
エラー EACCES(13) で失敗しています - 指定されたタイプまたはプロトコルのソケットを作成する権限が拒否されました。
さらに進める方法について何か提案はありますか?