我在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.
这是什么意思?将执行什么控制?它(谁是什么组成部分)的表现?什么是已知和未知的应用程序?检查结果可能是什么?
答案 0 :(得分: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()
只是检查此列表是否不超过限制。
答案 1 :(得分:0)
本文引用sentIntent。
在Android操作系统中,应用程序有一些合理的限制,无需每次都询问用户权限就发送短信。
如果超出这些限制,则向用户呈现用于发送SMS许可的对话框。
每个应用程序通常会计算限制,但是如果您没有设置sentIntent,那么SmsUsageMonitor
类就无法知道发送SMS请求来自哪个应用程序,因此它将计算您的应用限制以及其他应用程序不设置sentIntent,限制会更小。
因此,最好提供一个sentIntent,即使它是虚拟的。