為了能夠用兩個微信徹底分離工作和生活,又苦於 iPhone 不能雙開微信,我開始使用 Android 手機作為工作備用機,無奈之下加入了雙機黨的陣營。
我有兩個號碼: A 和 B,因為號碼 A 流量多,就把它留在了主力機上,號碼 B 挪到了備用機。可大部分服務都是用號碼 B 註冊的,使用主力機時,時常因為各種原因,需要填寫號碼 B 收到的簡訊驗證碼,此時又得拿起備用機檢視驗證碼。如此反覆,真的令人非常不爽。
為此我開始尋找 Android 簡訊轉發的解決方案,最終透過 SmsForwarder + Bark 解決了這個問題,經過一段時間的使用,效果非常不錯。現在我把這個 Android 手機簡訊轉發給 iPhone 的方案分享給大家,有需要的朋友可以作為參考。
在 iPhone 中安裝 Bark App
Bark 是一款 Apple 生態內的自定義推送服務,它充分利用了 Apple 推送通知服務 (APNs) 進行工作,原理是將自定義推送內容透過 傳送端 > Bark 服務端 > 蘋果 APNs 伺服器 > 你的裝置 > Bark 進行傳遞。由於完全依賴 Apple 推送通知服務,app 本身無需前臺執行,幾乎不會對 iPhone 的續航產生影響。
第一次開啟 Bark 時,會自動為你的裝置生成 key ,複製 app 首頁自動生成的第一個帶有 key 引數的 URL 備用。
在 Android 手機中安裝簡訊轉發器 SmsForwarder
SmsForwarder 是我在酷安找到的 開源 Android 簡訊轉發工具,它有一個簡單直白的中文名稱「簡訊轉發器」,這款 app 在轉發簡訊時,能設定轉發模板,還能對簡訊內容設定多種篩選條件,可以利用釘釘、飛書、郵箱、企業微信、Server 醬、Telegram 等多種渠道進行推送。
開啟「簡訊轉發器」,依次點選「傳送通道」–「添加發送通道」,選擇「Bark」,填入上一步在 iPhone 端 Bark 中生成的推送地址,點選「確定」儲存設定。
返回 app 首頁,點選「轉發規則」–「新增簡訊轉發」,設定好你自己的簡訊轉發規則。比如:當你只想轉發備用機的驗證碼簡訊時,可以將簡訊內容匹配關鍵字設定為「驗證碼」,這樣只有包含驗證碼的簡訊才會被轉發,其它諸如廣告營銷、公益宣傳等內容的簡訊則不會被轉發。此處也可以根據自己的需要新增其它規則。
除了轉發簡訊,SmsForwarder 還可以轉發 Android 手機的未接來電和應用通知,因為與本文主題無關,感興趣的朋友可以自行下載體驗。
為 SmsForwarder 設定應用許可權 ️
出於續航因素考慮,Android 手機的後臺策略都非常保守,致使 SmsForwarder 在後臺執行時,容易被系統 kill 軟體後臺程序。為保證簡訊轉發功能的正常運作,需要在手機系統中設定好 app 的自啟動、後臺執行、電池最佳化等必要許可權。由於各品牌手機的設定方式存在差異,在此不做詳細說明。
出於隱私角度考慮,一些國內的定製系統會預設隱藏包含驗證碼的簡訊,第三方應用即使被授予簡訊許可權,也無法讀取到這型別的簡訊。因此需要在手機簡訊設定中關閉相關防護功能,此類簡訊才能被讀取並轉發至其它裝置。
將 Android 手機收到的驗證碼轉發至 Mac
根據同樣的原理,你也可以在 Mac App Store 中搜索安裝 Bark,生成推送地址後,在 SmsForwarder 中將其設定為第二個推送通道。這樣你就可以在 iPhone 和 Mac 上同時收到來自 Android 手機的驗證碼簡訊,方便你在使用 Mac 時填寫驗證碼。
總結
得益於 Apple 推送通知服務的穩定性,無論是 WiFi 還是蜂窩資料,這一套簡訊轉發方案几乎都沒有延遲,使用起來非常的方便。缺點是兩臺裝置必須都要聯網才能實現轉發和接收,而且只能從 Android 轉發簡訊到 iPhone,反向無效。
如果對 Bark 提供的後端服務有隱私方面的顧慮,你也可以透過該專案在 GitHub 公開的後端程式碼自行搭建後端服務。除了本文中提到的 Bark,你還可以使用 PushDeer 等其它類似的推送服務進行轉發,工作原理和配置方法也是類似的。