2013-08-01 29 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()只是检查此列表是否不超过限制。

相关问题