FileDocCategorySizeDatePackage
VoicemailContract.javaAPI DocAndroid 5.1 API14021Thu Mar 12 22:22:10 GMT 2015android.provider

VoicemailContract

public class VoicemailContract extends Object
The contract between the voicemail provider and applications. Contains definitions for the supported URIs and columns.

The content providers exposes two tables through this interface:

  • Voicemails table: This stores the actual voicemail records. The columns and URIs for accessing this table are defined by the {@link Voicemails} class.
  • Status table: This provides a way for the voicemail source application to convey its current state to the system. The columns and URIS for accessing this table are defined by the {@link Status} class.

The minimum permission needed to access this content provider is {@link Manifest.permission#ADD_VOICEMAIL}

Voicemails are inserted by what is called as a "voicemail source" application, which is responsible for syncing voicemail data between a remote server and the local voicemail content provider. "voicemail source" application should always set the {@link #PARAM_KEY_SOURCE_PACKAGE} in the URI to identify its package.

In addition to the {@link ContentObserver} notifications the voicemail provider also generates broadcast intents to notify change for applications that are not active and therefore cannot listen to ContentObserver notifications. Broadcast intents with following actions are generated:

  • {@link #ACTION_NEW_VOICEMAIL} is generated for each new voicemail inserted.
  • {@link Intent#ACTION_PROVIDER_CHANGED} is generated for any change made into the database, including new voicemail.

Fields Summary
public static final String
AUTHORITY
The authority used by the voicemail provider.
public static final String
PARAM_KEY_SOURCE_PACKAGE
Parameter key used in the URI to specify the voicemail source package name.

This field must be set in all requests that originate from a voicemail source.

public static final String
ACTION_NEW_VOICEMAIL
Broadcast intent when a new voicemail record is inserted.
public static final String
ACTION_FETCH_VOICEMAIL
Broadcast intent to request a voicemail source to fetch voicemail content of a specific voicemail from the remote server. The voicemail to fetch is specified by the data uri of the intent.

All voicemail sources are expected to handle this event. After storing the content the application should also set {@link Voicemails#HAS_CONTENT} to 1;

public static final String
EXTRA_SELF_CHANGE
Extra included in {@link Intent#ACTION_PROVIDER_CHANGED} broadcast intents to indicate if the receiving package made this change.
public static final String
SOURCE_PACKAGE_FIELD
Name of the source package field, which must be same across all voicemail related tables. This is an internal field.
Constructors Summary
private VoicemailContract()
Not instantiable.

    
Methods Summary