2

SMS Android アプリを作成しようとしていますが、これまでに見たことのないエラーが発生します。Google でもそのようなものは見つかりませんでした。それで、あなたが私を助けてくれるなら...私はうれしいです

何らかの理由で、プログラムが 2 つのメッセージ (同じ SMS) を同時に送信しています。しかし、それは本番環境でのみ発生します。シミュレーターを使用しているときは、すべて正常に動作します! それはSMSを一度だけ送信します...

多くの電話と多くの電話会社を試しましたが、常にエラーが発生します。シミュレーターではなく実際の電話でのみ発生するため、何が起こっているのかを発見する方法が本当にわかりません...

コードは以下のとおりです。

private void sendSMS(String phoneNumber, String message, Context context) {
    ContextWrapper cw = new ContextWrapper(context);
    Context baseContext = cw.getBaseContext();

    Intent intentSMS = new Intent(baseContext, SMSManagerService.class);
    intentSMS.putExtra("celNumber", phoneNumber);
    intentSMS.putExtra("textMessage", message);

    Random s = new Random(System.currentTimeMillis());
    PendingIntent pendingIntent = PendingIntent.getService(cw, s.nextInt(), intentSMS, PendingIntent.FLAG_ONE_SHOT);
    try {
        pendingIntent.send();
    } catch (CanceledException e) {
    }
}

SMSManagerService.class

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Bundle intentExtras = intent.getExtras();
    if (intentExtras != null) {
        String phoneNumber = intentExtras.getString("celNumber");
        String message = intentExtras.getString("textMessage");

        if (isContentValid(phoneNumber, message)) {
            sendSMS(phoneNumber, message);
        }
    }

    return super.onStartCommand(intent, flags, startId);
}

 private void sendSMS(String phoneNumber, String message) {
    sentPI = registerSMSSent(phoneNumber, message);
    deliveredPI = registerSMSdelivered();

    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}

だから.. 誰か. ヒントはありますか?!

どうも

4

4 に答える 4

0

ここで何か問題が発生したことはすぐにはわかりません。PCをAndroidスマートフォンに接続し、コードのどこかに改行を入れて、この方法でデバッグできますか?このようにして、SMSManagerService.classにどのように組み込まれるかをsendSMS2回確認できます。

于 2013-01-18T08:19:00.260 に答える
0

質問を明確にして答えを出すためだけに...

これは、SMS アプリケーションを実行している電話と Android のバージョンに応じて、Android のバグです。

バグはここに関連しています: GoogleコードAndroid inssues

Android sendTextMessage は、実行時に2つの同一のメッセージを送信します。修正方法は?

于 2014-02-25T21:16:38.107 に答える
0

こんにちは:)私は間違っているかもしれませんがpendingIntent.send();、メッセージを送信していませんか? また、デバッグ モードでは、LogCat が何を言っているのかを調べてみてください :) 答えが見つかるかもしれません ;)

于 2012-07-19T22:07:19.960 に答える
0

多分あなたはここで答えを見つけるでしょう、そしてこの種のチュートリアルも役に立つかもしれません

于 2012-07-20T20:47:35.333 に答える