/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package android.provider; import android.content.Intent; import android.database.ContentObserver; import android.net.Uri; import android.provider.CallLog.Calls; /** * The contract between the voicemail provider and applications. Contains * definitions for the supported URIs and columns. * *
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 use the source specific {@link #CONTENT_URI_SOURCE} URI * to insert and retrieve voicemails. * *
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: *
Type: TEXT
*/ public static final String NUMBER = Calls.NUMBER; /** * The date the voicemail was sent, in milliseconds since the epoch *Type: INTEGER (long)
*/ public static final String DATE = Calls.DATE; /** * The duration of the voicemail in seconds. *Type: INTEGER (long)
*/ public static final String DURATION = Calls.DURATION; /** * Whether this is a new voicemail (i.e. has not been heard). *Type: INTEGER (boolean)
*/ public static final String NEW = Calls.NEW; /** * The mail box state of the voicemail. *Possible values: {@link #STATE_INBOX}, {@link #STATE_DELETED}, * {@link #STATE_UNDELETED}. *
Type: INTEGER
*/ public static final String STATE = "state"; /** Value of {@link #STATE} when the voicemail is in inbox. */ public static int STATE_INBOX = 0; /** Value of {@link #STATE} when the voicemail has been marked as deleted. */ public static int STATE_DELETED = 1; /** Value of {@link #STATE} when the voicemail has marked as undeleted. */ public static int STATE_UNDELETED = 2; /** * Package name of the source application that inserted the voicemail. *Type: TEXT
*/ public static final String SOURCE_PACKAGE = "source_package"; /** * Application-specific data available to the source application that * inserted the voicemail. This is typically used to store the source * specific message id to identify this voicemail on the remote * voicemail server. *Type: TEXT
*Note that this is NOT the voicemail media content data. */ public static final String SOURCE_DATA = "source_data"; /** * Whether the media content for this voicemail is available for * consumption. *
Type: INTEGER (boolean)
*/ public static final String HAS_CONTENT = "has_content"; /** * MIME type of the media content for the voicemail. *Type: TEXT
*/ public static final String MIME_TYPE = "mime_type"; /** * Path to the media content file. Internal only field. * @hide */ public static final String _DATA = "_data"; } }