2016-05-05 4 views
0

いくつかの調査をしても、私は過去7日間にどのように曲を検索するかをまだ分かっていません。現在、これはどのように私が曲を取得しようとしているが、それは常に空に戻ります。最近の曲をMediaStoreから取得する

public void displayRecentSongs() { 

    //retrieve song info 
    ContentResolver musicResolver = getActivity().getContentResolver(); 
    Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    String where = MediaStore.Audio.Media.DATE_ADDED + ">" + (System.currentTimeMillis()/1000 - 7); 
    Cursor musicCursor = musicResolver.query(musicUri, null, where, null, null); 

    if(musicCursor!=null && musicCursor.moveToFirst()){ 
     //get columns 
     int idColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media._ID); 
     int titleColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.TITLE); 
     int artistColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.ARTIST); 
     int pathColumn = musicCursor.getColumnIndex 
       (MediaStore.Audio.Media.DATA); 
     //add songs to list 
     do { 
      long thisId = musicCursor.getLong(idColumn); 
      String thisTitle = musicCursor.getString(titleColumn); 
      String thisArtist = musicCursor.getString(artistColumn); 
      String thisPath = musicCursor.getString(pathColumn); 
      songList.add(new Song(thisId, thisTitle, thisArtist, null, thisPath)); 
     } 
     while (musicCursor.moveToNext()); 
    } 
    musicCursor.close(); 

} 

注:先週にダウンロードした曲を検索するかどうかを再確認するためにテストしましたが、役に立たなくなりました。

+1

'System.currentTimeMillis()/ 1000-7 'は、Unixエポックから7秒を引いた秒数です。 – CommonsWare

答えて

0

System.currentTimeMillis()/1000 - 7は、これまでの7秒であり、Unixエポックから秒単位で表されます。

System.currentTimeMillis()/1000 - 7*60*60*24は、Unixエポックから数えて7秒前になります。あなたはTimeUnitTimeUnit.SECONDS.convert(7, TimeUnit.DAYS)?)から7*60*60*24の計算を得ることができるはずですが、私はそれを試していない、と私は少しthe TimeUnit documentationで混乱しています。

関連する問題