問題タブ [smsmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1375 参照

android - smsManager.sendTextMessage の Android sentIntent により、UI が更新されます

誰かが以前にこの問題を抱えていましたか、それとも何が起こっているのか説明してもらえますか?

コードの説明: 次のコードは、オブジェクト ContactFromXML から情報を取得し、必要な場所にテキスト メッセージを送信します。

コード:

問題: コードが送信するテキスト メッセージごとに、UI が更新されます。最初に、メッセージが UI スレッドから送信されたことが原因だと考えたので、それを AsyncTask に入れました。しかし、それは何も解決しませんでした。いくつかのテストの後、de SentItent 'pi' が原因であることがわかりました。使わなくても問題ありません。

質問: 誰かこれを説明できますか? この機能を使用して、テキスト メッセージが実際に送信されたかどうかを確認し、ユーザーが UI の更新に気付かないようにしたいと考えています。

0 投票する
0 に答える
548 参照

android - SMS 送信の一般的な失敗

ユーザーが特定のアクションを実行すると、SMS を送信するアプリがあります。

前提条件:

  • テキストは 100 文字に制限されています
  • PhoneNumber には国コードがなく、存在します

SMS が正常に送信されたかどうかを検出するために、ケースを含む BroadcastReceiver と、すべてが機能しているかどうかを確認するための外部ログがあります。

  • 送信済
  • 無線オフ
  • 一般的な失敗
  • 等..

コードは機能しているようですが、なぜこれらのランダムな一般的なエラーが発生するのか理解できません。メキシコのようないくつかの国では、私は多くの一般的な失敗を抱えており、国とオペレーターの代わりに共通点がありません. ケースの 80% は一般的な失敗です。メキシコ/テルセル。

同じユーザーを含むため、ランダムと言いましたが、「SENT」と「一般的な失敗」が発生しました。クレイジーです。

コードは非常に単純で一般的であるため、投稿しません。それはより理論的な問題だと思います。

一般的な障害とは何ですか? オペレーター/国/デバイス/ネットワークに依存しますか? これらの要因に応じて、何か違うことをしなければなりませんか?

ありがとうございました。

0 投票する
1 に答える
1493 参照

android - 一定時間後に定期的にSMSを自動送信する方法

一定時間後にバックグラウンドで定期的に SMS を番号に送信する必要があります。どのように行うことができます。ありがとう。

0 投票する
1 に答える
1778 参照

android - AndroidでSMSを一度に1つずつ送信する方法

私のアプリからアプリへの SMS 送信には、電話番号のリストを反復処理し、SMSManager.sendMultipartTextMessage() を使用するかなり標準的なループがあります。

BroadcastReceiver (一意の PendingIntent を持つメッセージ パーツごとに 1 つ、レシーバーはそのインテントをフィルター処理します) は、失敗を記録するために使用されます。

問題を再現することはできませんが、一部のユーザーが複数の一般的なエラー (SmsManager.RESULT_ERROR_GENERIC_FAILURE) を取得していることはわかっています。

彼らの電話は、高速で届く複数の SMS を処理できないと思います。ループに遅延 (良い解決策ではありません) を入れても、SMS が何らかの形で電話にスタックし、突然フラッディングして、一般的な障害を引き起こしていると思います。

他の多くの人がこの問題を抱えていることは知っていますが、非常に単純なケース (エラーフローがないなど) 以外に役立つ解決策は見当たりませんでした。

各 BroadcastReceiver.onReceive() が報告されるまで待機する無限ループ (効果的にはリスナー) を考えましたが、無限ループのアイデアは嫌いです (そして、すべてのエラー フローに対してもそれを管理しようとします)。

SMS が一度に 1 つずつ処理されるようにする方法 (スロットル) に関するアイデアはありますか?

0 投票する
2 に答える
8063 参照

android - マルチパート SMS の送信が成功したことを確認する方法

次のような SMS およびマルチパート SMS メッセージの送信に関する多くの投稿を読みました。

Android でのSMS の送信、Androidでの SMS および MMS の送受信 (Kit Kat Android 4.4 より前)Android PendingIntent エクストラ、BroadcastReceiver で受信されない

...などですが、メッセージのすべての部分が正常に送信されたことを確認していないようです。

私が理解していることから、マルチパートメッセージでは、メッセージの各部分に PendingIntent を追加しますが、私が見た例では、すべての部分が正常に送信されたことを確認していないようです... ) 彼らはそれが成功したと思っているようです...

そこで、マルチパート メッセージを送信して、その部分を追跡しようと考えました。すべての部分が正常に送信されるまで、メッセージが正常に送信されたとは言えません。

次のコードでこれを実行しようとしました... SmsMessageInfo は、電話番号、メッセージ、処理されたパーツのブール値のリスト、および正常に送信されたパーツのリストを含む単純なクラスであり、一意のメッセージ ID も持っています。

私は次のことを試しました:

これの問題は、2 番目のメッセージ部分がまったく受信されないことです。

複数の PendingIntents を作成するという面倒な作業をすべて行って、それらがすべて機能していることを確認しないのは奇妙に思えます。

Message Part No を表示するログ メッセージでは、常に 0 です。2 番目の部分を取得しないため、このコードは完了したとは考えません。

複雑にしすぎているのでしょうか。古い PendingIntent が戻ってきて、残りの部分にも同じことが当てはまると想定する必要があります (その場合、なぜ Google は最初にそれらのリストを提供するようにしたのですか)。

長い質問で申し訳ありませんが、短い方法でより明確に質問する方法が本当にわかりませんでした:-)

よろしくコリン