Não estou dizendo que isso é ideal ou funciona bem. Mas só para te dar uma ideia.
Você pode usar ferramentas de linha de comando para escrever um script que verifique a força.
e, em seguida, altera a rede conforme necessário.
Para obter a força, você pode usar este código de linha de comando:
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I |grep -i "agrCtlRSSI:"
Olhe para as man pages para / usr / sbin / networksetup para alterar a configuração.
Como exemplo, aqui está um applescript rápido.
Só é executado uma vez, pois é apenas um exemplo de uso.
Mas no seu roteiro eu faria como um LaunchAgent Existe um aplicativo chamado lingon isso simplifica a gravação de LaunchAgents. Os LaunchAgents podem inicializar aplicativos, executar scripts em horários específicos, regularmente ou quando algo acontece.
Eu espero que isso ajude
set wifi1 to "wifissid1"
set wifi2 to "wifissid2"
try
set strength to last word of (do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I |grep -i \"agrCtlRSSI:\"") as number
log strength
end try
set network to do shell script "/usr/sbin/networksetup -getairportnetwork en1"
log network
if strength is less than 50 then
if network is not equal to "Current Wi-Fi Network: " & wifi1 then
do shell script "/usr/sbin/networksetup -setairportnetwork en1 " & wifi1 & " &> /dev/null & "
end if
else
if network is not equal to "Current Wi-Fi Network: " & wifi2 then
do shell script "/usr/sbin/networksetup -setairportnetwork en1 " & wifi2 & " &> /dev/null & "
end if
end if