当前位置: 首页 > 知识库问答 >
问题:

如何计算android应用程序中互联网连接更改的次数[重复]

连坚白
2023-03-14

我能够检测应用程序是否连接到WiFi或移动网络。但我无法记录互联网连接从Wifi到移动网络或从Wifi到移动网络的变化次数。要记录网络更改,我需要检查它是否连接到WiFi或移动设备。那么,稍后我需要如何检查从WiFi连接到移动设备的应用程序,或者从WiFi连接到移动设备的应用程序?

我想计算android应用程序中发生的互联网连接更改次数。

我编写的代码片段是{public void onReceive(final Context,final Intent){

    final ConnectivityManager connMgr = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    final android.net.NetworkInfo wifi = connMgr .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    final android.net.NetworkInfo mobile = connMgr .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    SharedPreferences pref =this.getApplicationContext.getSharedPreferences("network_change_count", Context.MODE_PRIVATE);
    int count = pref.getInt("networkchange", 0);
    pref.edit().putInt("networkchange", ++count).apply();
       // return pref.getInt("networkchange", count);
    }

} }

我已经在清单文件中注册了接收者。但现在,当我尝试调用获取共享首选项值时,我得到了nullPoIntx的感知。

SharedReferences pref=此。getApplicationContext。GetSharedReferences(“网络更改计数”,Context.MODE\u PRIVATE);int connectivitychange=pref.getInt(“网络更改”,0);

我可以知道我在这个代码中犯了什么错误吗?

请给我一些建议:)

共有1个答案

金飞
2023-03-14

试试这个方法

registerReceiver(networkBroadcastReceiver, new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"));

一旦连接发生变化,您将在这里获得呼叫。

BroadcastReceiver networkBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {

        count++;
    }
};
 类似资料:
  • 问题内容: 我已经有了这段侦听连接性更改的代码- 我使用此代码检查连接- 但是问题是,如果网络突然失去了互联网连接而没有任何连接更改,则此代码将无用。有什么方法可以创建广播接收器侦听器以更改Internet连接吗?我有一个Web应用程序,突然的Internet连接更改会引起问题。 问题答案: 尝试这个 对于广播接收器 不要忘记将其放入你的AndroidManifest.xml 希望这会为你加油!

  • 我有一个Android注册应用程序。当移动设备和计算机都连接到同一个wifi上时,它运行良好。但是,如果移动设备的互联网连接关闭,则会出现一条吐司消息 'java.net.连接异常:2500ms后连接到/100.118.242.179(端口80)失败:isConnted失败: ECONNREFUSED(连接被拒绝)'。 如何在移动设备上没有互联网连接的情况下运行该应用程序?

  • 问题内容: 我正在开发一个用于检查互联网连接的Android广播接收器。 问题是我的广播接收器被调用了两次。我希望只有在网络可用时才能调用它。如果不可用,我不想收到通知。 这是广播接收器 这是manifest.xml 问题答案: 你的第一个问题的答案:你的广播接收器被调用两次是因为 你已经添加了两个 网络连接更改: WiFi状态更改: 只需使用一个: 它将仅响应一个动作,而不是两个。有关更多信息,

  • 我正在开发一个用于检查互联网连接的android广播接收器。 问题是我的广播接收器被调用了两次。我希望它只在网络可用时被调用。如果它不可用,我不想被通知。 这是广播接收机 这是manifest.xml

  • 我需要检查的设备是否有互联网连接,我搜索一些例子,但当我复制和粘贴的代码,我总是得到错误或不推荐的函数。我也不明白我必须把检查连接的方法放在哪里,因为我需要检查viewModel中的internet连接来发出一些请求,而我找到的所有方法都在参数中有上下文,而我无法在viewModel中获得上下文。 我尝试了这段代码,但我不明白我必须把它放在哪里,我得到 有人能给我解释一下怎么开这张支票吗?

  • 我试着从这个答案(被接受的答案)。我可以使用“PING”方法,但用户界面变黑了,因为它说它会阻止用户界面线程。它看起来不太好,令人不安,所以我尝试使用第二种方法“连接到互联网上的套接字”,但我不知道如何使用Kotlin中的类。 这是android studio将Java转换为kotlin的结果 但是我不知道如何使用它。我试过这样做: 它不起作用,导致了一个错误。它说我必须通过“消费者”。 我的问题