リモート操作
リモート操作を使うと、別の端末から自分の端末に短い SMS を送るだけで、SmsForwarder に代わりに作業させることができます — 代理で SMS の返信を送る、転送をオン/オフする、アプリの状態を確認する、端末がオンラインかどうかを確認する、Google Play との間で購読状態を再同期する、または(Advanced 購読を持っている場合)自然言語で指示を出す、といった操作です。
許可リストに明示的に追加した電話番号からのみ、これらのコマンドを送ることができます。共通パスワードはありません — 送信元の電話番号自体が認証情報です。
はじめる前に
- アプリの設定で リモート操作 を開きます。
- リモート操作 のメインスイッチをオンにします。
- 許可する電話番号 を 1 件以上追加します。完全な国際フォーマット(例:
+819012345678)で入力してください。 - コマンド結果の受け取り方法を選びます — 下記の 応答の受信 を参照してください。
#REPLYを使う場合や、SMS で送信元に返信を受け取りたい場合は、SMS 送信 権限が付与されているか確認してください。
コマンドの形式
各コマンドは、許可リスト上の番号から自分の端末に送信される普通の SMS です。空白でない最初の行は必ずコマンドのキーワード(# で始まる)です。追加情報を取るコマンドでは、各値を 1 行ずつ書きます。
コマンド本体は通常の SMS としては 転送されません — アプリが認識して消費します。
#REPLY — 代理で SMS を返信する
端末を手元に持っていないが、誰かに SMS を送らせたいときに使います。
形式:
#REPLY
<相手の電話番号>
<返信本文>
SIM 指定付き(任意、デュアル SIM 端末向け — どの SIM で送信するかを固定します):
#REPLY
#<自分の SIM の電話番号>
<相手の電話番号>
<返信本文>
SIM 指定行は # で始まり、末尾 8 桁で照合されます。シングル SIM 端末や、システム標準の SIM を使う場合は省略してください。
例:
#REPLY
+819012345678
向かっています。10 分で着きます。
#REPLY
#15557654321
+14155550123
これは 2 番目の SIM で送って。
注意:
- 受信側には、元の送信者の番号ではなく、自分の端末の番号から返信されたものとして表示されます。
- SMS 送信 権限が必要です。権限がない/取り消されている場合、このコマンドは実行できません。
- 返信本文は複数行でかまいません。
#CTRL — ルール、チャンネル、メインスイッチをオン/オフする
転送ルール、配信チャンネル、または各種メインスイッチを、端末を触らずに切り替えたいときに使います。
形式:
#CTRL
<対象>
<名前 または 範囲>
<ON または OFF>
- 対象 は
RULE、CHANNEL、FORWARDINGのいずれか(大文字小文字は区別しません)。 - 名前 または 範囲 は対象によって決まります:
RULEの場合 — アプリに表示されているルール名そのまま(大文字小文字を区別、かつ一意であること)。CHANNELの場合 — アプリに表示されているチャンネル名そのまま(大文字小文字を区別、かつ一意であること)。FORWARDINGの場合 —SMS、CALL、NOTIFICATION(またはNOTIFY)、ALLのいずれか。
- ON / OFF は
1/0、TRUE/FALSE、YES/NOでも書けます。
例:
特定のルールをオンにする:
#CTRL
RULE
給与振込通知
ON
SMS 転送のメインスイッチをオフにする:
#CTRL
FORWARDING
SMS
OFF
配信チャンネルをオフにする:
#CTRL
CHANNEL
マイ Telegram
OFF
すべて(SMS、通話、通知)をまとめてオフにする:
#CTRL
FORWARDING
ALL
OFF
注意:
- このコマンドは SMS 転送のメインスイッチがオフのときでも有効 です — そのため、リモートで転送を再開させるためにも使えます。
- ルール名/チャンネル名は一意である必要があります。同名のルールが 2 つあると、誤操作を避けるためにコマンドは拒否されます。
- ルール名/チャンネル名は、大文字小文字とスペースを含めて完全一致で照合されます。
#STATUS — 現在何が有効かを確認する
読み取り専用クエリ。各メインスイッチの状態と、有効になっているすべてのルール/チャンネルの名前を返します。
形式:
#STATUS
応答例:
[リモート] 状態
転送 · SMS on · 通話 off · 通知 off
ルール (2): 給与振込通知, OTP
チャンネル (1): マイ Telegram
ルールやチャンネルの数によっては、応答が複数の SMS セグメントにまたがります。キャリアはセグメントごとに課金します。
#PING — 端末の生存確認をする
読み取り専用クエリ。端末の現在状態のスナップショットを返します — 端末が起きていてオンラインで、電池切れ寸前ではないかだけ知りたいときに便利です。
形式:
#PING
応答例:
[リモート] Pixel 7 · 2026-05-01 14:35
電池 73% · 充電中
省電力モード:off
ネットワーク:Wi-Fi · インターネット OK
モバイル回線で接続している場合、応答にはネットワーク世代、キャリア名、(Android 10 以降では)0〜4 段階の信号レベルも含まれます:
[リモート] OnePlus 9 · 2026-05-01 14:35
電池 45% · 電池駆動
省電力モード:on
ネットワーク:モバイル · インターネット OK
モバイル:5G · キャリア
信号:3/4
注意:
- デュアル SIM 端末では、信号レベルはデータ用 SIM のものを示します。これはコマンドを受け取った SIM とは限りません。
#PINGは転送のメインスイッチが入っているかどうかに関係なく実行されます。
#HELP — 本ドキュメントへのリンクを取得する
読み取り専用クエリ。このオンラインのコマンドリファレンスへのリンクを返します。誰かにドキュメントを共有したいときや、コマンドの正確な書式を忘れて確認したいときに便利です。
形式:
#HELP
応答例:
[リモート] コマンド一覧:https://smsforward.zobubo.com/Remote-Control/
現在 #HELP は既定で英語版のページを返します。アプリが中国語の場合は中国語版が返ります。それ以外の言語では現状英語版のページにフォールバックします — このページにすべてのコマンドが網羅されています。#HELP は転送のメインスイッチが入っているかどうかに関係なく実行されます。
#REFRESH — Google Play と購読状態を再同期する
読み取り専用クエリ。端末に対して、この端末にログイン中の Google アカウントの有効な購読を Google Play へ即座に問い合わせ、ローカルの購読状態を返ってきた内容で書き換えるよう指示します。
別の端末で再購読した(または購入したばかり)のときに、この端末で日次のバックグラウンド更新を待たずに新しい権利を即座に反映させたい場合に使います。
形式:
#REFRESH
応答例:
[リモート] サブスクリプションを更新しました:月額プランが有効です
[リモート] サブスクリプションを更新しました:年額プランが有効です
[リモート] 更新完了:この Google アカウントに有効なサブスクリプションはありません
[リモート] 更新に失敗しました:Google Play に接続できません。ネットワークを確認して再試行してください。
注意:
- 端末にネットワーク接続と、正常な Google Play への接続が必要です。どちらかが不調だとコマンドは失敗を返し、ローカルの購読状態は変更されません。
- クエリには、現在端末にサインインしている Google アカウントが使われます。そのアカウントが購読の所有者であることを確認してください。
- ローカル購読が すでに失効していても
#REFRESHは実行されます — 復旧経路として設計されているためです。転送のメインスイッチが入っているかどうかにも依存しません。 - この操作は冪等です:
#REFRESHを繰り返し送っても新たな購入や解約は発生しません。Google Play がすでに知っている情報を読み直すだけです。
#AI — 自然言語で指示を送る
構造化コマンドを書く代わりに、普通の文章で端末に指示を出したいときに使います。SmsForwarder はあなたのメッセージを設定済みのクラウド AI プロバイダに渡し、既存のコマンドのいずれかに言い換えるよう依頼してから、そのコマンドを実行します — ただし結果が許可されたキーワードのいずれかに対応している場合に限ります。
形式:
#AI
<任意の言語による指示文>
例:
#AI
+819012345678 に「10 分くらいで着くよ」と返信して
#AI
ひとまず転送をすべてオフにして
#AI
今この端末のバッテリーと電波はどう?
前提条件:
- 端末にログインしている Google アカウントに有効な Advanced 購読がある。
- AI のメインスイッチがオンで、設定 → AI でクラウド経路が構成済み — Advanced 購読者向けの既定である内蔵クラウド(API キー不要)、または BYOK プロバイダ(Gemini / Claude / OpenAI)と有効な API キー、のいずれか。
- リモート操作 ページで 自然言語リモートコマンド スイッチがオンになっている。
いずれかの前提条件を満たさない場合、コマンドは短い理由とともに拒否されます。
注意事項:
#AIは常にクラウドで実行されます。SmsForwarder の AI 処理は設計上クラウド専用です。- AI が生成した文字列は、
#REPLY/#CTRL/#STATUS/#PING/#HELP/#REFRESHと同じホワイトリストで再度チェックされます。そのリスト外のものは破棄されます —#AIを使って新しい / 任意のコマンドを実行することはできません。 - 翻訳後の構造化コマンドは新たな SMS として 再転送されません。あなた自身がその構造化コマンドを入力したのと同じように実行されるだけです。元の
#AI文と翻訳後の構造化コマンドは、転送履歴の詳細パネルに監査用として一緒に保存されます。 - クラウドプロバイダに到達できない、または応答を許可されたコマンドに変換できない場合、結果メッセージにその旨が記載され、それ以外の動作は行われません。
応答の受信
各コマンドは短い結果メッセージを返します。リモート操作 で設定すれば、以下のいずれか、または両方の方法で受け取れます:
- 送信元への SMS 返信。 結果はコマンドを送ってきた番号に対して通常の SMS として返されます。SMS 送信 権限が必要です。権限を取り消すと、このオプションは自動でオフになります。
- 配信チャンネルへの送信。 結果は既に設定済みの配信チャンネル(Telegram、メール、Webhook など)経由で配信されます。最大 10 チャンネルまで選択できます。無効化または未設定のチャンネルはスキップされます。
両者は独立しています。片方だけ、両方、またはどちらも使わない(その場合コマンドは実行されますが、応答は受け取れません)という運用が可能です。
よくあるエラー
コマンドの形式が誤っていると、次のような応答が届きます:
[リモート] コマンドを拒否しました:<理由>
代表的な理由:
- 送信先がありません —
#REPLYに宛先電話番号がない。 - 返信本文がありません —
#REPLYに本文がない。 - 対象がありません —
#CTRLの 2 行目にRULE/CHANNEL/FORWARDINGがない。 - 不明な対象 —
#CTRLの 2 行目が上記 3 つのいずれでもない。 - 名前がありません —
#CTRL RULEまたは#CTRL CHANNELに名前がない。 - ON / OFF がありません — トグル行が空。
- 不正なトグル値 — トグル行が認識できる値ではない。
- 不正な範囲 —
#CTRL FORWARDINGに対しSMS/CALL/NOTIFICATION/NOTIFY/ALL以外が指定された。 - 「X」というルール/チャンネルがありません — 名前がどのルール/チャンネルにも一致しない。
- 「X」というルール/チャンネルが複数あります — 重複名のため、まずアプリ側で 1 つを改名してください。
知っておきたいこと
- 許可リストにない番号 から送られたコマンドは静かに無視されます。
- 許可リストは送信者番号を完全一致で照合します。キャリアが配送する形式そのまま(先頭
+付きの国際フォーマットが最も確実)で登録してください。 - コマンド形式の SMS は認識されて消費されるため、転送履歴に「転送済み」として残ることはありません。
- 一部の応答経路(SMS 返信など)は、他の SMS と同じようにキャリアの SMS 通信枠を消費します。
コマンドが期待どおりに動作しない場合は、テクニカルサポート ページをご覧ください。