0

SMS ループバックを実現したいと考えています。つまり、同じアプリケーションから SMS を送受信したいと考えています。そのために、 を拡張するクラスを作成しBroadcastReciever、メソッドを実装onReceive()して、関連する権限を宣言しました。

telnet を使用して SMS を送信し、実装を検証しました。telnet プロセスを自動化したいと考えています。つまり、SMS を送信してアプリケーション自体をテストします。そのために、メイン アクティビティで次のメソッドを呼び出しますが、BroadcastReceiver呼び出されることはありません。

private final void sendSMS() {
    final TelephonyManager telMgr = (TelephonyManager)
            getSystemService(Context.TELEPHONY_SERVICE);
    final int len = telMgr.getLine1Number().length(); 
    final String phoneNum = telMgr.getLine1Number().substring(len - 4, len);
    final String msg = "msg"; 
    SmsManager.getDefault().sendTextMessage(phoneNum, null, msg, null, null);
}

何が悪いのか手がかりはありますか...?

更新:上記のコードはエミュレーター向けであることに注意してください。

4

1 に答える 1

0

質問が正しいかどうかわかりませんが、エミュレータからそれ自体に SMS を送信しようとしていますか? 私の知る限り、それは不可能です。別のエミュレーターをロードして、それらの間でメッセージを送信するだけです。

telnet コマンドが機能するため、BroadcastReceiver はおそらく正しく実装されていますが、とにかくそのコードを添付する必要があります...表示されないコードのトラブルシューティングは困難です :)

于 2012-05-30T23:52:53.323 に答える