首页 文章

无需定时器/时间表即可连续检查新的WiFi网络(Android)

提问于
浏览
1

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

我试着注册SCAN_RESULTS_AVAILABLE_ACTION,但我可以't find any Wifi scan action triggering the event. I also looked over WifiManager and ConnectivityManager, but I can' t找到任何相关的事件 .

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

附:这是我在stackoverflow中的第一个问题 .

1 回答

  • 0

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

    访问 Network stateWifi 所需的权限:

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

    创建扩展 Broadcast Receiver 并覆盖方法的类

    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();
    }}}
    

相关问题