c# - Enable/Disable Wifi on Android in Unity -
i trying enable or disable wifi unity on android device. tried different things found on forum without success.
if do:
using(var unityplayer = new androidjavaclass("com.unity3d.player.unityplayer")) { string wifiservicename = unityplayer.get<string>("wifi_service"); using(var wifimanager = unityplayer.call<androidjavaobject>("getsystemservice", wifiservicename)) { wifimanager.call("setwifienabled", false); } }
i have error saying wifi_service
doesn't exist.
if do:
using (androidjavaobject activity = new androidjavaclass("com.unity3d.player.unityplayer").getstatic<androidjavaobject>("currentactivity")) { using (var wifimanager = activity.call<androidjavaobject>("getsystemservice","wifi")) { wifimanager.call<androidjavaobject>("setwifienabled", false); } }
i have error saying setwifienabled
not function, (nor static function if callstatic
).
i have manifest.xml
correctly merged, can check have permissions on application manager.
i spent few hours trying figure out how , stuck!
does know simple way so?
thanks lot help,
benjamin
according android doc, setwifienabled
takes bool
parameter , returns bool
too.
your second code close. got parameter right failed provide return type. put androidjavaobject
return type instead of bool
.
in second code, replace wifimanager.call<androidjavaobject>("setwifienabled", false);
wifimanager.call<bool>("setwifienabled", false);
.
this should work, assuming have permission in place. 1 advice put code in try catch clause. prevent weird behavior if null or failed in android function calls.
public bool setwifienabled(bool enabled) { using (androidjavaobject activity = new androidjavaclass("com.unity3d.player.unityplayer").getstatic<androidjavaobject>("currentactivity")) { try { using (var wifimanager = activity.call<androidjavaobject>("getsystemservice", "wifi")) { return wifimanager.call<bool>("setwifienabled", enabled); } } catch (exception e) { } } return false; } public bool iswifienabled() { using (androidjavaobject activity = new androidjavaclass("com.unity3d.player.unityplayer").getstatic<androidjavaobject>("currentactivity")) { try { using (var wifimanager = activity.call<androidjavaobject>("getsystemservice", "wifi")) { return wifimanager.call<bool>("iswifienabled"); } } catch (exception e) { } } return false; }
Comments
Post a Comment