Package Com.example.demo_mediascanner;import Java.io.file;import Java.util.calendar;import java.util.Date;import Android.net.uri;import Android.os.bundle;import Android.os.environment;import Android.provider.MediaStore;import Android.app.activity;import Android.content.context;import Android.content.intent;import Android.content.intentfilter;import Android.database.cursor;import Android.util.log;import Android.view.Menu; Import android.view.view;/** * Scan--scanner Music * @author Alan * */public class Mainactivity extends Activity {private cursor cursor; Calendar cal = Calendar.getinstance (); @Overrideprotected void OnCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (R.layout.activity_main); Intentfilter intentfilter = new Intentfilter (intent.action_media_scanner_started); Intentfilter.addaction (intent.action_media_scanner_finished); Intentfilter.adddatascheme ("file"); Mediascannerreceiver receiver = new Mediascannerreceiver (); Registerreceiver (receiver, intentfilter); Sendbroadcast (New Intent (intent.action_media_mounted, Uri.parse ("file://" + environment.getexternalstor Agedirectory ()))); }public void Scanfileasync (Context ctx, String filePath) {Intent scanintent = new Intent (intent.action_media_scanner_ Scan_file); Scanintent.setdata (Uri.fromfile (New FILE (FilePath)); Ctx.sendbroadcast (scanintent);} public void Scanner (view view) {cursor = Getcontentresolver (). query (MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, NULL , NULL, NULL, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); Thread thread = new Thread () {int n; @Overridepublic void Run () {while (Cursor.movetonext ()) {//song name: MediaStore.Audio.Med Ia. Titlestring Tilte = cursor.getstring (Cursor.getcolumnindexorthrow (MediaStore.Audio.Media.TITLE)); Path to the song file: MediaStore.Audio.Media.DATAString url = cursor.getstring (Cursor.getcolumnindexorthrow ( MediaStore.Audio.Media.DATA)); Method 1: Song File modification time (note: Accurate to the second, so also to *1000): MediaStore.Audio.Media.DATE_modifiedlong updatetime= Cursor.getlong (Cursor.getcolumnindexorthrow (MediaStore.Audio.Media.DATE_MODIFIED)); UpdateTime = updatetime*1000;//Method 2: Gets the most recent modification time file File = new file (URL); Long time = file.lastmodified ();//format times, get year, month, Day string[] times = Gettimeinfo (updatetime);//LOG.I ("TAG", "Tilte:" +tilte); LOG.I ("TAG", "URL:" +url); LOG.I ("TAG", "Times:" +times[0]+times[1]+times[2]); n++;} LOG.I ("TAG", "n====>" +n); LOG.I ("TAG", "getcount====>" +cursor.getcount ());}; Thread.Start ();} @Overridepublic boolean Oncreateoptionsmenu (Menu menu) {//Inflate the menu; This adds items to the action bar if it is PR Esent.getmenuinflater (). Inflate (R.menu.main, menu); return true;} /** * Get time (month and day) * @return */public string[] Gettimeinfo (long time) {string[] times = new String[3];D ate Date = new Date (Ti me); Cal.settime (date); Times[0] = Cal.get (calendar.year) + ""; Times[1]= (Cal.get (calendar.month) +1) + "";//calendar month from 0-11 times[2]= cal.get (calendar.day_of_month) + ""; return time s;}}
Android Scan music files, two ways to obtain the latest file modification time