C2DM経由で受信したメッセージをSMS受信トレイに配信したいと考えています。これはC2DMが本物のSMSであると考えてAndroidを欺くことによって可能であると結論づけています。C2DMをSMS受信トレイに配信する
私はかなりのAndroidソースコードをトレースしていますが、SMS_RECEIVEDインテントが実行される前に電話機スタックで顕著なことは起こりません。そのため、これを行う最も簡単な方法はPDUを作成することです理論的には標準的なSMSアプリケーションがそれを消費してSMS受信箱に書き込まなければならないSMS_RECEIVEDインテントを発射する。
以下のコードスニペットは概念の証明です - 私はコードをテストするためにPDUをハードコードしています。 PDUは有効であり、ユーティリティを使用して生成されました。
明らかに間違ったことをしているのか、このルートを降りるのが非スターターなのか不思議に思っていました。
String pdu = "07911326040000F0040B911346610089F60000208062917314080CC8F71D14969741F977FD07";
byte[][] pdus = null;
pdus = new byte[1][];
pdus[0] = hexStringToByteArray(pdu);
Intent intent = new Intent("android.provider.Telephony.SMS_RECEIVED");
intent.putExtra("pdus", pdus);
intent.putExtra("format", "3gpp");
MyAndroidAppActivity.this.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
ご意見やご感想をお寄せください。
非常に有益で有益なポストをありがとう。特定の意図がOSに限定されるべきであることは、完璧な意味合いを持っています。私はそれが書かれていない、破損しやすいと知っているSMSの受信トレイに直接書き込むバックアップ計画があり、大きくないか賢いではありません。私の推測では、これが通知メカニズムをバイパスするので、メッセージは保存されますが、UI通知は生成されません。私はこれを証明する唯一の方法は試してみることだと思います! –