2017-05-30 47 views
-1

應用列表中有沒有一種方法以編程方式獲得連接到互聯網和他們的入站和出站連接的應用程序列表。安卓:讓連接到互聯網和他們的入站和出站連接

想做一個這樣做的應用程序,不需要根手機。

+0

還有像「網絡連接」(https://play.google.com/store/apps/details?id=com.antispycell.connmonitor&hl=en)That做這個現有的應用程序。我在哪裏可以找到源代碼來做到這一點? –

回答

1

如果你想要一個低級別的解決方案,你可以嘗試使用netstat的方法。 在基於Linux的系統上,您可以從/ proc/net/route中讀取網絡信息。要做到這一點

的一種方法是,包括在你的應用程序一個busybox的二進制文件(一定要看看licencse),然後運行netstat的的busybox,然後讀取輸出到您的應用程序。

Process process = Runtime.getRuntime().exec("busybox netstat -n"); 
    BufferedReader reader = new BufferedReader(
    new InputStreamReader(process.getInputStream()) 
    process.getOutputStream().close(); 

然後你就可以識別哪些應用程序正在使用的由處理ID列連接,您將獲得可與一個應用程序如app_23識別的procces用戶,see this answer how to get the app name from the pid

如果你不」要包含busybox二進制文件,你可以嘗試自己讀取procfs中的信息。 幸運的是,有人已經爲你做了這項工作,see this example

+0

我第二次使用netstat方法。順便說一句:很好找,這個netinfo項目,假設它的工作。我只會添加兩個有關設備生根的分錢 - 您不必,您可以將此監控應用程序設置爲設備管理員。這就是每個AV所需要的,他們會監視網絡連接和文件系統更改(我的ESET Mobile會這樣做)。 – Kitet