I’m able to execute Driver.GetSettings (or driver.get_settings, as I’m using ruby), but all it tells me is:
{“ignoreUnimportantViews”=>false}
On a previous project, we used “adb shell dumpsys audio” to get the ringer level, but that’s not implemented in appium yet (see https://github.com/appium/appium/issues/3218). You can create your own connection to the device through adb to obtain this information. Be warned: Different platforms represent the ringer volume level, and you will have to take some care during testing that you handle those different representations. I never found documentation on how each vendor represents the ringer volume, so we came up with a solution through testing and analysis (read: trial and error).
You can get the wifi state with this command:
% adb shell dumpsys wifi |grep mPersistWifiState
mPersistWifiState 0
(wifi is off)
mPersistWifiState 1
(wifi is on)