定期的にチェックを行い、接続されていない場合はwifiを無効にするハンマースプーンのwifiウォッチャーを用意することを考えています。
次のスクリプトはこれを行います。
function checkAndDisableWifi()
hs.timer.doAfter(45, function()
local current_network = hs.wifi.currentNetwork()
if current_network == nil then
hs.wifi.setPower(false)
hs.notify.new({title="Hammerspoon",informativeText="Disabling wifi due to inactivity"}):send()
end
end)
end
function wifi_timer_callback()
local wifi_state = hs.wifi.interfaceDetails().power
if wifi_state then
local current_network = hs.wifi.currentNetwork()
if current_network == nil then
hs.wifi.setPower(false)
hs.notify.new({title="Hammerspoon",informativeText="Disabling wifi due to inactivity"}):send()
end
else
hs.wifi.setPower(true)
checkAndDisableWifi()
end
end
local wifi_timer = hs.timer.doEvery((10*60), wifi_timer_callback)
wifi_timer:start()
ここで、ユーザーがすでに LAN 経由で接続されている場合のような問題に直面しています。現時点では、このウォッチャーを有効にする必要はありません (wifi のオンとオフの切り替えを停止するため)。だから私が必要なのは、ユーザーがすでにLAN経由で接続されているか、少なくともインターネットに接続されているかを教えてくれるAPIはありますか?
私の言いたいことが分かりますか?