0

SmsManager のドキュメントの場所が明確ではないことがわかりました。

クラス SmsManager、メソッド sendTextMessage、パラメータ sentIntent ( http://developer.android.com/reference/android/telephony/SmsManager.html ):

The per-application based SMS control checks sentIntent. If 
sentIntent is NULL the caller will be checked against all 
unknown applications, which cause smaller number of SMS to 
be sent in checking period.

どういう意味ですか?どのような制御が行われるのでしょうか? 誰 (どのコンポーネント) を実行しますか? 既知および未知のアプリケーションとは? チェックの結果はどうなるでしょうか?

4

2 に答える 2

0

このテキストは sentIntent を参照しています。Android OS では、毎回ユーザーの許可を求めることなく SMS を送信するための合理的な制限がアプリにいくつかあります。これらの制限を超えると、SMS の送信許可を求めるダイアログがユーザーに表示されます。制限は通常、アプリケーションごとにカウントされますが、sentIntent を設定しない場合、SmsUsageMonitorSMS 送信リクエストがどのアプリから送信されているかをクラスが知る方法がないため、設定されていない他のアプリと一緒にアプリの制限をカウントします。 sentIntent と limit は小さくなります。結果として、たとえそれがダミーであっても、sentIntent を提供することが最善です。

于 2014-07-13T10:35:55.743 に答える
0

アプリが一定時間内に送信できる SMS の数には制限があります。SmsUsageMonitor(少なくとも Android 4.x では)実装されています。

たとえば、SmsUsageMonitor.check(String appName, int smsWaiting) を見てください。

 public boolean More ...check(String appName, int smsWaiting) {
     /* ... */ 
     return isUnderLimit(sentList, smsWaiting);
 }

ご覧のとおり、アプリが送信する SMS のリストがあります。isUnderLimit()このリストが制限を超えていないかどうかを確認するだけです。

于 2013-08-01T10:03:08.170 に答える