我正在嘗試使用藍牙加密狗(並非試圖做任何事情破壞地球,只是確定我的手機在該地區),將手機連接到我的RaspberryPi。如果我將手機的藍牙設置爲併發出以下命令,我會得到以下輸出(在任何人開始向我講述這是如何破壞安全性之前,讓我提醒您,那是而不是我的實際電話藍牙ID):使用rfcomm檢查連接是否成功
命令:
sudo rfcomm connect 0 AA:BB:CC:DD:EE:FF 10
echo $?
輸出:
Connected /dev/rfcomm0 to AA:BB:CC:DD:EE:FF on channel 10
Press CTRL-C for hangup
0
現在,如果我將手機的藍牙關閉,併發出相同的命令,我會得到以下輸出(同樣,所有ID已被更改以保護無辜者)。
命令:
sudo rfcomm connect 0 AA:BB:CC:DD:EE:FF 10
echo $?
輸出:
Can't connect RFCOMM socket: Host is down
0
因爲我試圖確定當手機在房間裏,它離開的時候,我需要一些方法(一些其他方式)檢測加密狗何時可以連接並且無法連接。我該如何去實現這個目標? (注:我嘗試從建築物拆卸手機,甚至完全關閉它)
編輯:我已經考慮捕捉stderr
消息,像這樣
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;
測試它,但問題是, rfcomm必須在後臺運行。