No digo que esto sea ideal o que funcione bien. Pero solo para darte una idea.
Puedes usar las herramientas de la línea de comandos para escribir un script que verifique la fuerza.
y luego cambia la red según sea necesario.
Para obtener la fuerza, puede usar este código de línea de comando:
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I |grep -i "agrCtlRSSI:"
Mire las páginas del manual para / usr / sbin / networksetup para cambiar la configuración.
A modo de ejemplo, aquí hay un rápido applecript.
Solo se ejecuta una vez, ya que es solo un ejemplo de uso.
Pero en su script lo haría como un LaunchAgent
Hay una aplicación llamada lingon que simplifica la escritura de los Agentes de inicio. LaunchAgents puede iniciar aplicaciones, ejecutar scripts en momentos específicos, con regularidad o cuando sucede algo.
Espero que esto ayude
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