如何将 setWifiEnabled(bool) 已弃用方法解析到 Android Q 中?

问题描述 投票:0回答:3

就我而言,我有用于启用 wifi 的现有代码。在这里,我在 Android Q api 级别 29 中的

CONNECTIVITY_ACTION
setWifiEnabled(true)
处获得代码折旧。下面的代码在旧版本中运行良好,但折旧仅发生在
api 29
上。如何借助版本条件解决它。

启用Wifi代码

private void enableWifi(Context context, String ssid) {
        if(webWifiStateListener != null) {
            context.unregisterReceiver(webWifiStateListener);
        }
        webWifiStateListener = new WifiStateListener(ssid);
        context.registerReceiver(webWifiStateListener,
                new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); // CONNECTIVITY_ACTION Deprecated Android Q
        webWifiManager.setWifiEnabled(true); // Deprecated Android Q
    }
java android android-10.0
3个回答
1
投票

Android Q 不允许应用程序打开和关闭 Wi-Fi。您可以使用类似的东西https://developer.android.com/reference/android/provider/Settings.Panel


1
投票

在 Android Q 中使用此功能:

Intent panelIntent = new Intent(Android.Provider.Settings.Panel.ActionWifi);
StartActivityForResult(panelIntent,1);

请勿使用:

webWifiManager.setWifiEnabled(true); // Deprecated Android Q

0
投票

在 android studio Koala 版本中 - 以下代码工作正常

public class MainActivity extends AppCompatActivity {
    WifiManager wifiManager;
    Button buttonWifi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
        buttonWifi = findViewById(R.id.btnWifi);

        buttonWifi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent panelIntent = new Intent(Settings.Panel.ACTION_WIFI);
                startActivityForResult(panelIntent,1);
            }
        });

    }

    @Override
    public void startActivityForResult(@NonNull Intent intent, int requestCode) {
        super.startActivityForResult(intent, requestCode);
        if(requestCode == 1){
            if(wifiManager.isWifiEnabled()){
                Toast.makeText(this, "Stop the wifi if you want", Toast.LENGTH_SHORT).show();
            }
            else{
                Toast.makeText(this, "Start the wifi if needed", Toast.LENGTH_SHORT).show();;
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.