我对Android默认短信应用有一些疑问。
我必须创建一个需要在Android SMS / MMS数据库中读/写SMS和MMS的应用程序。 为此,我需要使用“content:// sms / ***”Content Provider。
此内容提供商不是SDK的一部分,因此我强烈建议您不要在公共应用程序中使用它(Previous question,Android Developerd Blog)。
Google在Android 4.4中引入了“Default SMS app”的概念,它允许第三个应用管理短信和彩信。这是否意味着内容提供商“content:// sms / ***”现在是官方SDK的一部分?
说这个是对的吗?
SMS内容提供商在Android 4.4之前存在相同的行为/结构,但在Android SDK中不是官方的,因此可能存在Android< 4.4可能不支持这一点。
SMS内容提供商是Android> = 4.4 SDK的一部分,并且所有设备(Android> = 4.4)正式完全支持它。
Android 4.4中的SMS Content Provider隐藏API基本上没有任何变化,但主要是形式化。从隐藏的APi到正式的API。
答案 0 :(得分:1)
SMS内容提供商在Android 4.4之前存在相同的行为/结构,但在Android SDK中不是官方的,因此可能存在Android< 4.4可能不支持这一点。
这基本上是正确的,因为提供商和底层数据库没有太大变化。但是,如您所述,现在有默认SMS应用程序的概念,只有默认具有对Provider的标准写入权限。此外,SMS_RECEIVED
广播无法再中止,因此无法从任何收听该广播的应用中隐藏该广播。
SMS内容提供商是Android> = 4.4 SDK的一部分,并且在所有设备中正式完全支持它(Android> = 4.4)。
不完全。 API现在正式成为SDK的一部分,但这并不意味着每个供应商都必须使用它来实现他们的SMS客户端,尽管大多数都是。
Android 4.4中的SMS Content Provider隐藏API基本上没有任何变化,但主要是形式化。从隐藏的APi到正式的API。
基本上,是的,除了上述差异。另请注意,默认的SMS应用程序负责很多事情,实现一个完全可以作为一个应用程序的应用程序并非易事。