android NetworkMonitor记录

是否能上网的状态

上网url地址的设置:

NetworkMonitor.java

  makeCaptivePortalHttpsUrls

    config_captive_portal_https_urls

    DEFAULT_CAPTIVE_PORTAL_HTTPS_URLS

http准备监测

isCaptivePortal

        sendHttpAndHttpsParallelWithFallbackProbes 

                httpsProbe.start();
                httpProbe.start();

                isConclusiveResult(httpsResult, capportApiUrl) (也不知道为啥不是http)

        isCaptivePortal : isSuccessful()=(最后的日志)           

因为httpsUrls和http都有,所以调用sendHttpAndHttpsParallelWithFallbackProbes

05-20 19:38:33.611  1575  2888 I NetworkMonitor: isCaptivePortal, pacUrl = null
05-20 19:38:33.612  1575  2888 I NetworkMonitor: isCaptivePortal, httpsUrls = [Ljava.net.URL;@63b8da0 httpUrls = [Ljava.net.URL;@6423d59
05-20 19:38:33.612  1575  2888 I NetworkMonitor: isCaptivePortal, httpsUrls and httpUrls, sendHttpAndHttpsParallelWithFallbackProbes

探测开始是在 ProbingState类里的

enter 方法里,isCaptivePortal调用完成后,拿到CaptivePortalProbeResult结果后,发送

CMD_PROBE_COMPLETE消息

private class ProbingState extends State {
    public void enter() {
            mThread = new Thread(() -> sendMessage(obtainMessage(CMD_PROBE_COMPLETE, token, 0,
                    isCaptivePortal(deps))));
            mThread.start();
    }
    public boolean processMessage(Message message) {
        switch (message.what) {
            case CMD_PROBE_COMPLETE:
            final CaptivePortalProbeResult probeResult =
                (CaptivePortalProbeResult) message.obj;

                if (probeResult.isSuccessful()) {
                        //正常会走到这儿
                        Log.i(TAG, "ProbingState, processMessage, 
                        CMD_PROBE_COMPLETE, isSuccessful");
                        transitionTo(mEvaluatingPrivateDnsState);
                } else if (probeResult.isPortal()) {
                     mEvaluationState.reportEvaluationResult(                                                
                        NETWORK_VALIDATION_RESULT_INVALID,
                        probeResult.redirectUrl);
                        mLastPortalProbeResult = probeResult;
                        transitionTo(mCaptivePortalState);
                }
                else {
                    //最后匹配到这儿,就是连接不成功了
                    Log.i(TAG, "ProbingState, processMessage, CMD_PROBE_COMPLETE,
                             else NETWORK_VALIDATION_FAILED ");
                    mEvaluationState.reportEvaluationResult(
                        NETWORK_VALIDATION_RESULT_INVALID,null /* redirectUrl */);
                    transitionTo(mWaitingForNextProbeState);
                }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PRTG Network Monitor是一个功能强大的网络监控工具,可以帮助管理员监控网络设备、应用程序、服务器和流量等,并生成实时报表和警报。以下是PRTG Network Monitor的中文使用说明: 1. 下载和安装 您可以从PRTG Network Monitor的官方网站上下载免费试用版或购买完整版。下载安装程序后,按照提示进行安装。 2. 添加设备 在运行PRTG Network Monitor之前,您需要添加要监控的设备。单击"设备"选项卡,然后单击"添加设备"按钮。在弹出的对话框中输入设备的IP地址或DNS名称,然后单击"下一步"。选择要监控的传感器,例如Ping传感器或SNMP传感器,然后单击"完成"。 3. 监控流量 PRTG Network Monitor可以监控网络流量,帮助您识别哪些应用程序或设备正在使用网络带宽。为了监控流量,您需要添加一个NetFlow传感器。单击"设备"选项卡,选择要添加NetFlow传感器的设备,然后单击"添加传感器"按钮。在弹出的对话框中选择NetFlow传感器,然后单击"下一步"。输入NetFlow收集器的IP地址和端口号,然后单击"完成"。现在,您可以在"流量"选项卡中查看实时的流量数据和图表。 4. 生成报表 PRTG Network Monitor可以生成多种类型的报表,例如实时监控报表、历史报表和流量报表。单击"报表"选项卡,然后选择要生成的报表类型。输入要监控的设备和传感器,然后选择要生成的时间段和报表格式。单击"生成报表"按钮,然后等待几秒钟,直到报表生成完毕。 5. 设置警报 PRTG Network Monitor可以设置警报,以便在设备或传感器出现问题时通知管理员。单击"警报"选项卡,然后单击"添加警报"按钮。选择要监控的设备和传感器,然后选择警报类型,例如电子邮件、短信或声音警报。输入警报条件,例如流量超过某个阈值或设备离线,然后单击"保存"。 这些是PRTG Network Monitor的基本使用说明。需要注意的是,PRTG Network Monitor提供了非常丰富的功能和选项,您可以根据实际需要进行配置和定制。如果您需要更详细的帮助和支持,请参考官方文档或联系技术支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值