获取设备网络网址调用

Dav*_*vid 5 android network-protocols wireshark

我正在尝试构建一个应用程序,为用户提供有关其网络使用情况的统计信息,

从3G/Wifi冲浪到应用网络使用.

我正在寻找的主要重要数据是网络呼叫的网址.

我有下一个代码,找到浏览器历史记录:

private void getBrowserHistory()
{
    String[] proj = new String[]{Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL};
    String sel = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history, 1 = bookmark
    Cursor mCur = this.managedQuery(Browser.BOOKMARKS_URI, proj, sel, null, null);
    this.startManagingCursor(mCur);
    mCur.moveToFirst();

    if (mCur.moveToFirst() && mCur.getCount() > 0)
    {
        while (mCur.isAfterLast() == false)
        {
            String title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE));
            String url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL));
            Log.d(LOG_TAG, "Site title: " + title);
            Log.d(LOG_TAG, "Site url: " + url);
            mCur.moveToNext();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但要找到应用程序网络使用情况,我需要更像WireShark的东西

我认为该问题的最终解决方案很复杂,但欢迎任何建议.

zma*_*ies 1

您无法在未 root 的设备上实现您想要的功能。

(Play Store 中已经有一个适用于 root 设备的 Wireshark 等效应用程序,名为Shark for root)。

顺便说一下,读取浏览器历史记录的代码只能从默认的 Android 浏览器获取历史记录。如果用户运行其他浏览器(例如 Firefox),则它不会使用相同的数据库,因此其历史记录不会出现在那里。