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.
|