Before talking about the topic, let's add a little knowledge about SQLite query statements (the android database uses SQLite ).
Like Operator
A useful relational operator is like. Like is similar to equal (=), but it uses a template to perform string matching. For example, to query all foods whose names start with the character "J", use the following statement:
SQLite> select ID, name from foods where name like 'J % ';
ID name
156 juice box
236 Juicy Fruit gum
243 jello with bananas
244 jujyfruit
245 Junior Mints
370 jambalaya
The percent sign (%) in the template can match any 0 to multiple characters. The underscore (_) can match any single character.
-- Reference from SQLite authoritative guide
Statement description:This statement returns the data of the ID and name columns in the foods table. The returned data must meet the following requirements: the data is a string starting with J on the name attribute.
Corresponding to this, let's look at the query statement query () in Android ().
Contentresolver. Query (URI Uri, string [] projection, string [] selection, string [] selectionargs, string sortorder );
Uri is the table name.
Projection is the array of column names to return.
Selection is a constraint, which is equivalent to a statement after the where keyword, such as name like 'J % '(Note: strings in SQLite are enclosed by single quotation marks)
Selectionargs the string in this array is used to replace? (For example, the selection statement name =? And phone =? Contains two? , Two string parameters need to be introduced in selectionargs, such as new string [] {myname, Myphone })
Sorting method of data returned by sortorder
------------------
Now, go to the topic:
BelowProgramTo add a music background whose name ends with "sorry" for the androidtest program.
This music starts playing in the oncreat () and onrestart () statuses of the activity. It stops playing when the activity enters the onstop () status.
Package kenan.com. test; import android. app. activity; import android. content. contentresolver; import android. database. cursor; import android. media. mediaplayer; import android.net. uri; import android. OS. bundle; import android. provider. mediastore;/*** @ classname: androidtestactivity * @ Description: Set a background music for this activity. * @ author jogging Android * @ date 2011-11-22 04:12:00 */public class Andro Idtestactivity extends activity {private mediaplayer; private final URI musictableforsd = mediastore. audio. media. external_content_uri; private final string musictitle = mediastore. audio. audiocolumns. title; private final string musicid = mediastore. audio. media. _ id; @ override public void oncreate (bundle savedinstancestate) {super. oncreate (savedinstancestate); setcontentview (R. layout. main ); Playbackgroundmusic () ;}@ overrideprotected void onrestart () {super. onrestart (); playbackgroundmusic () ;}@ overrideprotected void onstop () {super. onstop (); stopmusic ();} private void playbackgroundmusic () {// get a contentresovler, // so that we can read the music information form SD card. contentresolver = getcontentresolver (); string musicname = "% Sorry sorry"; cursor = Conte Ntresolver. Query (musictableforsd, new string [] {musicid, musictitle}, musictitle + "like? ", New string [] {musicname}, null); // If cursor has a recode, we support that we find the music. if (cursor. movetonext () {// get the music ID. int position = cursor. getint (cursor. getcolumnindex (musicid); Uri uri = Uri. withappendedpath (musictableforsd, "/" + position); mediaplayer = mediaplayer. create (this, Uri); If (null! = Mediaplayer) {mediaplayer. Start () ;}// finish our query work. cursor. Close () ;}private void stopmusic () {If (null! = Mediaplayer) {mediaplayer. Stop (); mediaplayer. Release ();}}}
References:
Android gets sdcard music files
Usage of selectionargs in query () in the database query method in Android
Beginner Tutorial: Android built-in SQLite Operation Method