【问题标题】:Switch Wifi On/Off in a toggle button Android在切换按钮 Android 中打开/关闭 Wifi
【发布时间】:2013-11-11 21:43:25
【问题描述】:

我知道要切换 Wi-Fi 状态,我必须这样做:

wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true);
wifiManager.setWifiEnabled(false);

并写入以下权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>

我制作了两个单选按钮(开/关),它们可以使用,但这不是最好的解决方案,所以我想创建一个切换按钮。如何将代码放在切换按钮中?

【问题讨论】:

    标签: android switch-statement android-wifi togglebutton


    【解决方案1】:

    您可以在 Activity 中执行此操作:

    public class MyActivity extends Activity {
    
        private ToggleButton btn;
        private WifiManager wifiManager;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            wifiManager = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
    
            btn = (ToggleButton) findViewById(R.id.btn_id);
            btn.setChecked(wifiManager.isWifiEnabled());
    
            btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    wifiManager.setWifiEnabled(isChecked);
                }
    
            });
        }
    }
    

    检查ToggleButton documentation

    【讨论】:

    • 这是一个按钮吧?因为我正在寻找切换解决方案
    • 很好很好谢谢..这个例子只是为了启用wifi?我要不要做同样的事情,但不是btn.setChecked(enabled); 而是btn.setChecked(disabled);
    • 如果检查状态,isChecked 将设置为 true,否则设置为 false。见CompoundButton.OnCheckedChangeListener
    • 这样可以吗?切换的检查 wifi 何时开始,切换的关闭何时停止?
    【解决方案2】:

    要实际切换,意思是切换状态,请使用:

    WifiManager wm = ((WifiManager) activity.getSystemService(Context.WIFI_SERVICE));
    wm.setWifiEnabled(!wm.isWifiEnabled());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 2012-12-11
      • 2011-09-21
      • 2013-01-19
      • 1970-01-01
      • 2021-02-18
      相关资源
      最近更新 更多