Turning on wifi using WifiManager stops to work on Android 10

前端 未结 4 643
轮回少年
轮回少年 2020-11-30 15:14

I have following code which used to work well pre Android 10. But it is not able to turn wifi on in Android 10 devices.

WifiManager wifiMgr = (WifiManager) g         


        
4条回答
  •  时光说笑
    2020-11-30 15:51

    I don't know where the problem is, as Google is answering it already:

    If apps are targeting an older SDK ( Build.VERSION_CODES.P or below), they can continue to use this API.

    So change your Target SDK to 28 and it works fine on Android Q.

    Or if you need to change WiFi State by second Apps like Tasker or Automate:

    1. Install Android Studio
    2. Create a new Project namend WiFiOn with Empty Activity and SDK 28
    3. Add commented lines:
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.net.wifi.WifiManager;
    import android.content.Context;
    import android.os.Bundle;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // Add WiFi On Part
            WifiManager wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
            wifi.setWifiEnabled(true); // true or false to activate/deactivate wifi
    
    
            // Add Toast if you want to
            Toast toast = Toast.makeText(getApplicationContext(), "WiFi on",  Toast.LENGTH_SHORT);
            toast.show();
    
            // Add Close Activity immediatelly
            finish();
    
        }
    }
    
    1. Change minSdkVersion and targetSdkVersion to 28 in build.grade(:app)
        compileSdkVersion 30
        buildToolsVersion "30.0.2"
    
        defaultConfig {
            applicationId "com.stackoverflow.example"
            minSdkVersion 28
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
    
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
    
    1. Add Permission to AndroidMAnifest.xml
    
    
        
        
        
    1. Use Android Studio to install it on your phone.

    2. Create a new Project like in 3. and name it WiFiOff and repeat all steps with changed lines in MainActivity:

    ...
            wifi.setWifiEnabled(false); // true or false to activate/deactivate wifi
    ...
            Toast toast = Toast.makeText(getApplicationContext(), "WiFi off",  
    ...
    

提交回复
热议问题