Vérifier la réussite de la connexion à l'aide de rfcomm

J'essaie de connecter mon téléphone à mon RaspberryPi à l'aide d'une dent bleue dongle (pas d'essayer de faire quelque chose de surprenant, juste déterminer quand mon téléphone est dans la zone). Si j'allume mon téléphone de la dent bleue sur et exécutez la commande suivante, j'obtiens le résultat suivant (avant que quelqu'un commence à prêcher pour m'expliquer comment cela est une violation de la sécurité, permettez-moi de vous rappeler que c'est pas mon téléphone bluetooth id):

commande:

sudo rfcomm connect 0 AA:BB:CC:DD:EE:FF 10
echo $?

de sortie:

Connected /dev/rfcomm0 to AA:BB:CC:DD:EE:FF on channel 10
Press CTRL-C for hangup
0

Maintenant, si je mets mon téléphone en bluetooth hors, et la question est la même commande, j'obtiens le résultat suivant (encore une fois, tous les id ont été changés pour protéger les innocents).

commande:

sudo rfcomm connect 0 AA:BB:CC:DD:EE:FF 10
echo $?

de sortie:

Can't connect RFCOMM socket: Host is down
0

Depuis que je suis en train d'essayer de déterminer quand le téléphone est dans la chambre et quand elle laisse, j'ai besoin d'une certaine manière (d'une autre façon) de détection lorsque le dongle peut et ne peut pas se connecter à elle. Comment puis-je faire pour atteindre cet objectif? (NOTE: j'ai essayé de retirer le téléphone de la construction et même de l'éteindre complètement)

EDIT: que j'ai considéré comme la capture de la stderr message et de le tester comme

error=$`sudo rfcomm connect 0 AA:BB:CC:DD:EE:FF 10 >/dev/null` &
if [ $error=="Can't connect RFCOMM socket: Host is down" ]
then
    ...
fi;

Mais le problème est que rfcomm doit s'exécuter en arrière-plan.

InformationsquelleAutor puk | 2013-10-01