连续检查新的WiFi网络没有计时器/时间表(Android)

时间:2015-12-28 05:47:36

标签: android android-wifi connectivity wifimanager

我的应用程序的一个功能是在后台选择一个首选网络,就像Wifi Prioritizer那样,但我不想定期用计时器/时间表扫描Wifi网络。我想通过事件触发与WiFi切换相关的操作。

我尝试注册SCAN_RESULTS_AVAILABLE_ACTION,但我找不到触发该事件的任何Wifi扫描操作。我也查看了WifiManager和ConnectivityManager,但我找不到任何相关的事件。

假设我已经连接到Wifi网络,是否有任何事件/方法可以在后台持续检查其他(新/旧)WiFi网络。

P.S。这是我在stackoverflow中的第一个问题。

1 个答案:

答案 0 :(得分:0)

首先,我们需要以下权限才能访问网络状态。将以下权限添加到清单文件中。

访问网络状态 Wifi 所需的权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="ANDROID.PERMISSION.ACCESS_NETWORK_STATE"/>

创建扩展广播接收器并覆盖方法

的类
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; 
import android.widget.Toast;
import android.net.ConnectivityManager;


public class Check_Connectivity extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent arg1) {

    boolean isConnected = arg1.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
    if(isConnected){
        Toast.makeText(context, "Internet Connection Lost", Toast.LENGTH_LONG).show();
    }
    else{
        Toast.makeText(context, "Internet Connected", Toast.LENGTH_LONG).show();
}}}