KitKat系统开放了短信权限,增加了“默认短信”的概念,新特性如下:
新增Intent
新增了两个intent:SMS_DELIVER_ACTION 和 WAP_PUSH_DELIVER_ACTION,分别对应新短信和新彩信的到来。
在4.4之前,新短信和新彩信到来时的intent为 SMS_RECEIVED_ACTION 和 WAP_PUSH_RECEIVED。它们在4.4中仍被保留。
这就是说,在一条新短信到来时,系统会发出两个广播:SMS_DELIVER_ACTION和 SMS_RECEIVED_ACTION
默认短信应用
用户可以从系统或第三方短信应用中选择一个作为“默认短信应用”:
1. 只有默认短信应用才能接收SMS_DELIVER_ACTION 和 WAP_PUSH_DELIVER_ACTION广播
2. 非默认短信应用也可以通过接收 SMS_RECEIVED_ACTION广播来监听新短信的到来并获得新短信的内容
3. 只有默认短信应用才能将收到的短信或彩信写入系统短信数据库,非默认短信应用试图写入系统短信数据库会失败并且没有任何提示。
官方tips:要区分这两个短信广播,可以想象成SMS_RECEIVED_ACTION只是简单地说“嘿,系统接收到一条短信”而SMS_DELIVER_ACTION却是说“系统传递给你的应用一条短信,因为你是系统默认的短信应用”。
默认短信应用有哪些权限
1. 监听新短信的到来并获得新短信的内容,并将其写入系统短信数据库
2. 发送短信和彩信,并将其写入系统短彩信数据库