默认SMS应用程序的API支持

时间:2015-03-04 13:11:24

标签: android sms android-contentprovider

我对Android默认短信应用有一些疑问。

我必须创建一个需要在Android SMS / MMS数据库中读/写SMS和MMS的应用程序。 为此,我需要使用“content:// sms / ***”Content Provider。

此内容提供商不是SDK的一部分,因此我强烈建议您不要在公共应用程序中使用它(Previous questionAndroid 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。

1 个答案:

答案 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应用程序负责很多事情,实现一个完全可以作为一个应用程序的应用程序并非易事。