一。起因#
国内の携帯電話番号や GV の登録をサポートしていないアカウントが増えてきたため
最近、年会費無料の海外 SIM カードを購入して使用しています
しかし、複数の SIM カードを持つと問題が発生し、外出時には 2 台の携帯電話を持ち歩くのが面倒です
そのため、1 台の携帯電話だけを持って外出できるような解決策を見つける必要がありました
二. Android の予備機の転送方法#
1. SmsForwarder + Telegram Bot#
SmsForwarder は、Android の SMS、着信、アプリの通知を監視し、転送するためのオープンソースライブラリです
また、SMS の送信、受信、通話の確認、通話履歴の確認、バッテリーの確認などの機能も提供しています
こちらは公式ドキュメントに基づいて簡単なセットアップ手順を示します。Telegram Bot を使用したくない場合は、ドキュメントを参照して自分で設定してください
一般設定
- 必要に応じて転送機能の全体のスイッチをオンにし、必要な権限を許可します。権限の設定が正常でない場合は、[設定] で手動で権限を設定してください(すべての権限を許可することをお勧めします)
- アクティブ状態を維持するために、最初の 3 つの設定をオンにすることをお勧めします
- カードスロットの注釈は、自動的に更新するためにクリックして取得します。転送情報のカードスロットが一致しない場合は、SubId に基づいてカードスロットのプライマリキーを設定します
- デバイスが不安定なネットワーク環境にある場合は、リクエストの再試行メカニズムの再試行回数を設定してください
送信チャネル
私は Telegram を転送ツールとして使用していますが、SMS やメールなども使用できます
- Telegram Bot の申請
@BotFatherとのプライベートチャットで、Botを申請します
/newbotと入力して、ボットのニックネームを入力します
次に、ボットのユーザー名を入力します
apiTokenを取得し、上記のボットのユーザー名を入力します
apiTokenを取得し、形式は次のようになります:1234567890:ABCDEFGHIJKLMNOPQRSTUVWXYZ
apiTokenを「TelegramボットのApiTokenを設定」にコピーします
ボットとチャットを作成し、何かしらのメッセージを送信します。または、グループを作成し、ボットをグループに招待し、グループ内で何かしらのメッセージを送信します。
次に、このリンクhttps://api.telegram.org/bot<apiToken>/getUpdatesを開きます(注意:<apiToken>を自分のものに置き換える)
ChatIDの値をresult->message->chat->idから取得します(個人は純粋な数字です。グループは負数で、type:groupです。)
自分(またはグループ)のChatIDを取得し、「通知を受ける人のChatIdを設定」に貼り付けます
【テスト】ボタンをクリックして確認します
通話転送ルール
- 送信チャネルには、先ほど追加した Telegram Bot を選択します
- ロジックを実行する -> 成功したら終了
- マッチングフィールド -> すべて
- この転送ルールを有効にする
それから、テストのために 1 つの SMS を送信してみることができます。問題がある場合は、ドキュメントを参照するか、自分で検索してください
2. Tasker + Telegram Bot#
注意:Tasker は有料アプリです
- Telegram Bot の申請
@BotFatherとのプライベートチャットで、Botを申請します
/newbotと入力して、ボットのニックネームを入力します
次に、ボットのユーザー名を入力します
apiTokenを取得し、上記のボットのユーザー名を入力します
apiTokenを取得し、形式は次のようになります:1234567890:ABCDEFGHIJKLMNOPQRSTUVWXYZ
apiTokenを「TelegramボットのApiTokenを設定」にコピーします
ボットとチャットを作成し、何かしらのメッセージを送信します。または、グループを作成し、ボットをグループに招待し、グループ内で何かしらのメッセージを送信します。
次に、このリンクhttps://api.telegram.org/bot<apiToken>/getUpdatesを開きます(注意:<apiToken>を自分のものに置き換える)
ChatIDの値をresult->message->chat->idから取得します(個人は純粋な数字です。グループは負数で、type:groupです。)
自分(またはグループ)のChatIDを取得し、「通知を受ける人のChatIdを設定」に貼り付けます
【テスト】ボタンをクリックして確認します
- タスクの作成
HTTP リクエストアクションを追加します:
メソッドは POST を選択します
URL には次のように入力します:https://api.telegram.org/bot<YOUR_TOKEN>/sendMessage
ヘッダーには次のように入力します:Content-Type/json(拡大鏡をクリックして簡単に選択できます)
ボディの内容は次のように入力します(chat_id を自分の UID に置き換えることを忘れないでください):
{
"chat_id": <YOUR_CHAT_ID>,
"parse_mode": "HTML",
"text": "<b>%SMSRF(%SMSRN)</b> \n\n%SMSRB\n\n 時間:%SMSRD"
}
ここで、いくつかの Tasker の組み込み変数を使用しています:
% SMSRF:送信者のアドレス
% SMSRN:送信者の名前(アドレス帳の名前または番号)
% SMSRB:本文(SMS の内容)
% MMSRS:件名(通常は MMS のみ)
% SMSRD:受信日付
% SMSRT:受信時間
- Tasker を呼び出すためのプロファイルの作成
Tasker の PROFILES タブに切り替えて、Event タイプの「Profile :Phone > Received Text」を追加し、必要に応じてタイプ、送信者、内容をフィルタリングするかどうかを設定します。
作成した後、作成したタスクにリンクするように選択するだけで完了です。
三. iPhone の予備機の転送方法#
iPhone アプリでは、デフォルトで SMS の内容を読み取る権限がありません。また、ショートカットの自動化ではキーワードや連絡先を指定する必要があり、Android に転送する方法はまだ見つかっていません
1. iPhone への転送#
設定を起動します
メッセージに移動します
iMessageを切り替えます
メッセージの転送を検索してタップします
受信および送信したいiOSデバイスを見つけてタップします(同じApple IDのデバイスのみが表示されます)
要求されたデバイスに確認コードが送信されます
2 台の iPhone がないためテストできませんが、一部のエキスパートからは異なる Wi-Fi 環境での同期に問題があるとのフィードバックを受けているため、予備機は Android を使用することをお勧めします