2013-08-01 34 views
0

我發現在SmsManager文檔中不完全清楚的地方。什麼是基於每個應用程序的SMS控制?

類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. 

是什麼意思?什麼控制將被執行?誰(什麼組件)執行?什麼是已知和未知的應用程序?什麼可能是檢查的結果?

回答

0

本文引用sentIntent。 在android操作系統中,應用程序有一些合理的限制發送短信沒有用戶許可每次問。 如果超過這些限制,則會向用戶呈現發送SMS權限的對話框。 限制通常按每個應用程序計算,但如果您沒有設置sentIntent,那麼SmsUsageMonitor類無法知道發送SMS請求來自哪個應用程序,因此它將計算您的應用程序限制以及其他應用程序, t設置sentIntent並且限制會更小。 因此,最好提供sentIntent,即使它是虛擬的。

0

對於在給定時間內應用程序發送多少條短信有限制和限制。它在SmsUsageMonitor(至少在Android 4.x)中實現。

例如,看看SmsUsageMonitor.check(字符串應用程序的名字,詮釋smsWaiting):

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

正如你所看到的,是一個應用程序發送短信的列表。 isUnderLimit()只是檢查此列表是否不超過限制。

相關問題