Deactivate WiFi
This set of short functions will do anything that should be done to deactivate WiFi service.
PRIVILEGES NEEDED: http://tizen.org/privilege/network.get http://tizen.org/privilege/network.set
// PRIVILEGES needed to be set in tizen-manifest.xml:
// http://tizen.org/privilege/network.get
// http://tizen.org/privilege/network.set
#include <wifi.h>
#include <dlog.h> // for logging purposes
//callback to be called when WiFi is deactivated
void on_wifi_deactivated(wifi_error_e result, void *user_data)
{
if (result == WIFI_ERROR_NONE)
{
LOGI("WiFi deactivation request successfully finished!");
bool wifi_activated = false;
if (wifi_is_activated(&wifi_activated) == WIFI_ERROR_NONE)
{
if (!wifi_activated)
{
LOGI("status: deactivated!");
}
else
{
LOGE("Error! WiFi is still activated!");
}
}
else
{
LOGE("Error! Could not check WiFi status!");
}
}
else
{
LOGE("Error! WiFi deactivation failed!");
}
}
// This simple function deactivates WiFi.
// It returns:
// -1 on failure,
// 0 when the WiFi deactivation request was successful (in that case callback will be executed),
// and 1 when WiFi is already deactivated.
int deactivate_wifi()
{
int result = -1;
if (wifi_initialize() == WIFI_ERROR_NONE)
{
bool wifi_activated = false;
if (wifi_is_activated(&wifi_activated) == WIFI_ERROR_NONE)
{
if (!wifi_activated)
{
LOGI("WIFI already deactivated!");
// As WiFi is already deactivated,
// you shouldn't call wifi_deactivate(), because it will return error.
// So you shouldn't also wait for callback.
// You can call the callback function manually here:
// on_wifi_deactivated(WIFI_ERROR_NONE, NULL);
// or check the function result and act accordingly outside of this function.
result = 1;
}
else
{
LOGI("WIFI is currently activated!");
if (wifi_deactivate(on_wifi_deactivated, NULL)== WIFI_ERROR_NONE)
{
LOGI("WIFI deactivation requested! Please wait for callback");
result = 0;
}
else
{
LOGE("Failed to request WiFi deactivation!");
result = -1;
}
}
}
else
{
LOGE("Could not check WiFi status!");
result = -1;
}
}
else
{
LOGE("WiFi initialization error!");
result = -1;
}
return result;
}
// This should be called when the deactivation callback is executed
// and you don't need WiFi services anymore (e.g. on app shutdown).
void deinitialize()
{
if (wifi_deinitialize() == WIFI_ERROR_NONE)
{
LOGI("WiFi deinitialized!");
}
}