Content providers manage access to a structured set of data. They encapsulate the data, and provide mechanisms for defining data security. Content providers are the standard interface that connects data in one process with code running in another process.
When you want to access data in a content provider, you use the
ContentResolver object in your
Context to communicate with the provider as a client.
ContentResolver object communicates with the provider object, an
instance of a class that implements
ContentProvider. The provider
object receives data requests from clients, performs the requested action, and
returns the results.
You don't need to develop your own provider if you don't intend to share your data with other applications. However, you do need your own provider to provide custom search suggestions in your own application. You also need your own provider if you want to copy and paste complex data or files from your application to other applications.
Android itself includes content providers that manage data such as audio, video, images, and
personal contact information. You can see some of them listed in the reference
documentation for the
package. With some restrictions, these providers are accessible to any Android
The following topics describe content providers in more detail: