Content providers are not only static sources of data. They can also be used to add, update, and delete data, if the content provider application has implemented this functionality. Your application must have the appropriate permissions (that is, WRITE_ CONTACTS as opposed to READ_ CONTACTS) to perform some of these actions.
Using the Contacts content provider, we can, for example, add a new record to the contacts database programmatically.
Just as we used the ContentValues class to insert records into an application’s SQLite database,we use it again here. The first action we take is to provide a name for the Contacts.People.NAME column. We need to create the contact with a name before we can assign information, such as phone numbers. Think of this as creating a row in a table that provides a one-to-many relationship to a phone number table.
Next, we insert the data in the database found at the Contacts.People.CONTENT_URI path. We use a call to getContentResolver() to retrieve the ContentResolver associated with our Activity. The return value is the Uri of our new contact. We need to use it for adding phone numbers to our new contact. We then reuse the ContentValues instance by clearing it and adding a Contacts.Phones.NUMBER and the Contacts.Phones.TYPE for it. Using the ContentResolver,we insert this data into the newly created Uri.
Inserting data isn’t the only change you can make. You can update one or more rows, as well. The following block of code shows how to update data within a content provider. In this case, we update a note field for a specific contact, using its unique identifier.
Again, we use an instance of the ContentValues object to map the data field we want to update with the data value—in this case, the note field. This replaces any current note stored in the NOTES field currently stored with the contact. We then create the Uri for the specific contact we are updating. A simple call to the update() method of the Content Resolver class completes our change. We can then confirm that only one row was updated.
Now that you cluttered up your contacts application with sample user data, you might want to delete some of it. Deleting data is fairly straightforward.
Deleting All Records
The following code deletes all rows at the given URI, although you should execute operations like this with extreme care:
The delete() method deletes all rows at a given URI filtered by the selection parameters, which, in this case, includes all rows at the People.CONTENT_URI location; in other words, all contact entries.
Deleting Specific Records
Often you want to select specific rows to delete by adding the unique identifier index to the end of the URI or remove rows matching a particular pattern.
For example, the following deletion matches all contact records with the name Sample User, which we used when we created sample contacts previously in the chapter.
Setting Up Your Android Development Environment
Writing Your First Android Application
Understanding The Anatomy Of An Android Application
Defining Your Application Using The Android Manifest File
Managing Application Resources
Exploring User Interface Screen Elements
Designing User Interfaces With Layouts
Drawing And Working With Animation
Using Android Data And Storage Apis
Sharing Data Between Applications With Content Providers
Using Android Networking Apis
Using Android Web Apis
Using Location-based Services (lbs) Apis
Using Android Multimedia Apis
Using Android Telephony Apis
Using Android 3d Graphics With Opengl Es
Using The Android Ndk
Using Android’s Optional Hardware Apis
Working With Notifications
Working With Services
Extending Android Application Reach
Managing User Accounts And Synchronizing User Data
Handling Advanced User Input
Targeting Different Device Configurations And Languages
The Mobile Software Development Process
Designing And Developing Bulletproof Android Applications
Testing Android Applications
Selling Your Android Application
All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd
Wisdomjobs.com is one of the best job search sites in India.