I want to create app functionality to turn on WIFI programmatically.
In android wifi.setWifiEnabled method was deprecated.
First, you need to ask the permission in the manifest file
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
Then in the activity file, you can disable wifi
WifiManager wifiManager = (WifiManager) this.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);
wifiManager.setWifiEnabled(false);
boolean wifiEnabled = wifiManager.isWifiEnabled()
Related
I am trying to get BSSID of WiFi but i am always getting 02:00:00:00:00:00 . How to get the Wifi MAC address ?
In android Manifest -
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Code
WifiManager wifiMgr = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
Toast.makeText(UserDashboardActivity.this,"macAddress " + wifiInfo.getBSSID(),Toast.LENGTH_LONG).show();
I am dealing with the same problem. As far as I know using <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> permission requires also permission <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />. Also make sure to check if Settings -> Location is turned on in your mobile device settings, and that location permission is granted in App settings.
Last hope is to check ACCESS_FINE_LOCATION in runtime.
I have a problem banning a specific bssid. I can see there is a class called WifiNative that was in api 19 but not able to access it:https://android.googlesource.com/platform/frameworks/base/+/kitkat-release/wifi/java/android/net/wifi/WifiNative.java
Is there any other way anyone knows of to do this? Maybe via JNI? Any android system libraries that can be used? c,c++?
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
newWifiInfo = wifiManager.getConnectionInfo();
from there you can get the BSSID by doing
newWifiInfo.getBSSID()
then "blacklist" by turning off the wifi via
wifiManager.setWifiEnabled(false)
Also don't forget your permissions
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
If you want more control over your wifi state, you can use the following library to "sniff" your connection and other things
https://github.com/pwittchen/ReactiveNetwork
Hi I'm new to android and was wondering what the preferred method of disabling wifi in my app. Both methods work fine but which is preferred/faster.
1
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(false);
Uses the following permission.
CHANGE_WIFI_STATE
2
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled()) {
wifi.setWifiEnabled(false);
}
Uses the following permission.
CHANGE_WIFI_STATE
ACCESS_WIFI_STATE
Thanks in advance.
You need the following permissions in your manifest file:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
Then you can use the following in your activity class:
WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);
You can, but its not really necessary, to use the following to check if it's enabled or not
boolean wifiEnabled = wifiManager.isWifiEnabled()
I am trying to create a widget for enabling and disabling the wifi.
if(myWifiManager.isWifiEnabled()){
System.out.println("Toggle Wifi Enabled going to disable");
myWifiManager.setWifiEnabled(false);
}
else{
System.out.println("Wifi Disabled going to enable ");
myWifiManager.setWifiEnabled(true);
System.out.println("WI: "+myWifiManager.isWifiEnabled());
}
This is the code i am using the disabling part is working fine but the enabling part is not working fine. Soon after enabling the wifi i am printing the wifi state i am getting it as false.
Here is how to turn on and turn off wifi in android.
First you need to declare the following in your manifest file
<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>
After doing it that on your Activity class
private WifiManager wifiManager;
#Override
public void onCreate(Bundle icicle) {
....................
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(false);
}else{
wifiManager.setWifiEnabled(true);
}
}
Explanation
Get the Wifi service from our system
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
Check the our wifi is currently turned on or turned off
if(wifiManager.isWifiEnabled()){
Turn on/off our wifi
wifiManager.setWifiEnabled();
Reference
WifiEnabler
http://google-androidlovers.blogspot.com/2012/01/scan-for-wireless-networks-in-android.html
http://www.java2s.com/Open-Source/Android/android-platform-apps/Settings/com/android/settings/wifi/WifiApEnabler.java.htm
Deprecated: Starting with Build.VERSION_CODES#Q, applications are not
allowed to enable/disable Wi-Fi. Compatibility Note: For applications
targeting android.os.Build.VERSION_CODES#Q or above, this API will
always fail and return false. If apps are targeting an older SDK
(android.os.Build.VERSION_CODES#P or below), they can continue to use
this API.
(Source)
So this will only work for devices with android Pie and below.
Download this example it is what you want
https://github.com/siddhpuraamitr/WIfi-Toggle-Widget
I am new to android i stuck for using coding enable location and sectury in that use wireless network enabled so please tell mi how it's possible
thanks
priya naral
From what I gathered, you want to programmatically turn on Wi-Fi.
If so, first you need to add these to your AndroidManifest.xml:
<application>
.
.
.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
</application>
Then you have the ability to use WifiManager, so your code would look something like the following, where this is your application Context:
WifiManager manager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
if(!manager.isWifiEnabled()){
manager.setWifiEnabled(true);
}