我问了以下引用的问题,但发现所有工作都白费了,因为android现在不允许注册广播以进行网络更改。
您无法在Manifest中进行此操作,因为在Activity中注册它后仍然可以得到呼叫,并且该上下文仍然有效。
现在,我已经在自己的活动中实施了计划,正在接到广播接收者的电话,并且一切都按预期进行。但是当我开始活动时,我会自动接到电话。我不能在活动开始时就跳过那件事吗?
这是我在该主题中提出的老问题:
我有一个应用程序,在该应用程序中我已实现了BroadcastReceiver来进行网络更改。
当网络连接发生任何变化时,它会提醒我,例如 网络断开连接,网络连接,网络 被更改等
但是我发现当Wifi处于 已连接,但Internet已从该网络断开。
有什么可以检查这种情况的,我们可以播报吗? ??
我搜索了很多,但没有得到任何答案。我希望我做了 我安静地清楚我的要求。
答案 0 :(得分:0)
您是否已在此处查看文档?
https://developer.android.com/training/monitoring-device-state/connectivity-monitoring?hl=es-419
它向您说明如何使用ConnectivityManager检查连通性的变化
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
您甚至可以检查类型:
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
甚至通过支持以下操作,甚至允许您的应用(通过清单)考虑更改:
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>