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



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

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

我写的代码片段是 { public void onReceive(final Context context, final Intent 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);
}

} }

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

SharedPreferencespref =this.getApplicationContext.getSharedPreferences("network_change_count", Context.MODE_PRIVATE); int connectivitychange=pref.getInt("networkchange", 0);

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

请给我建议:)

试试这个方法。

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

一旦连接发生变化,您将在此处接到电话。

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

最新更新