Non dire che questo è l'ideale o funziona bene. Ma solo per darti un'idea.
Puoi usare gli strumenti della riga di comando per scrivere uno script che controlli la forza.
e quindi cambia la rete secondo necessità.
Per ottenere la forza puoi usare questo codice a riga di comando:
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I |grep -i "agrCtlRSSI:"
Guarda le pagine man per / usr / sbin / networksetup per cambiare la configurazione.
Ad esempio, qui c'è un rapido applecript.
Funziona solo una volta poiché è solo un esempio di utilizzo.
Ma nel tuo script lo farei come un LaunchAgent
Esiste un'app chiamata lingon che semplifica la scrittura di LaunchAgent. LaunchAgents può avviare app, eseguire script in orari specifici, regolarmente o quando succede qualcosa.
Spero che questo aiuti
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