【问题标题】:checking new WiFi network continuously without timer/schedule (Android)在没有计时器/时间表的情况下连续检查新的 WiFi 网络 (Android)
【发布时间】:2016-04-01 23:50:46
【问题描述】:

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

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

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

附言这是我在 stackoverflow 中的第一个问题。

【问题讨论】:

    标签: android android-wifi connectivity wifimanager


    【解决方案1】:

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

    访问网络状态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();
    }}}
    

    【讨论】:

    • 好的,但是我应该注册什么事件来触发 onReceive 中的动作?
    猜你喜欢
    • 1970-01-01
    • 2012-08-03
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多