package com.music.zhangdaosen; import android.annotation.SuppressLint; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.util.Log; import android.widget.ArrayAdapter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; public class SongHelper { public static List<Song>musicList = new ArrayList<>(); // static List<Song>musicList; public static List<Song> getLocalMusic(Context context){ Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; ContentResolver resolver = context.getContentResolver(); Cursor cursor = resolver.query(uri,null,null,null,null); if(cursor !=null){ Song song; while (cursor.moveToNext()){ song =new Song(); int index = cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME); song.name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME)); song.singer = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)); song.path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA)); song.duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION)); Log.d("SongHelper--keyar","get"+song.name+" "+song.duration); musicList.add(song); SimpleDateFormat sdf = new SimpleDateFormat("mm:ss"); String time = sdf.format(new Date(song.duration)); } Log.d("SongHelper--keyar","get musicList"+ musicList.size()); } cursor.close(); return musicList; } public static String changeTime(int duration){ int min = duration/1000/60; int sec = duration/1000%60; if(sec<10){ return min+":0"+sec; } return min+":"+sec; } }
时间: 2024-04-27 18:24:06 浏览: 167
这是一段Java代码,看起来是一个获取本地音乐列表的帮助类。它使用了Android提供的MediaStore来查询本地的音频文件,然后将查询到的结果封装成一个Song对象,并保存在一个List中。可以通过调用`getLocalMusic()`方法来获取本地音乐列表。其中,每一个Song对象代表一首音乐,包含了音乐的名称、歌手、路径、时长等信息。`changeTime()`方法用于将时间格式从毫秒转换为分秒形式。
相关问题
import android.annotation.SuppressLint;
这是一个 Android 开发中常用的导入语句,用于导入 Android 平台中的注解类 `SuppressLint`。该类用于告诉 Lint 工具,忽略指定代码段的某些特定警告或错误提示。通过使用 `SuppressLint` 注解,我们可以在代码中标记出某些被 Lint 工具认为不规范的使用方法,从而避免 Lint 工具在编译或运行时产生不必要的警告或错误提示。
import android.support.annotation.requiresapi
import android.support.annotation.requiresapi 是Android开发中的一个注解,它用于指定某个方法或类需要依赖特定的API级别。
在Android开发中,每个API级别都代表了一组特定的功能和特性。当我们使用某个功能或特性时,需要确保当前设备的API级别达到或超过所要求的API级别,否则会导致应用在较低API级别的设备上出现错误或崩溃。
@requiresapi注解的作用是强制编译器在编译时检查所标注的方法或类使用的API级别是否满足要求。如果不满足要求,编译器会给出相应的错误提示。
在代码中使用@requiresapi注解的示例:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public void drawOnCanvas(Canvas canvas) {
...
}
上述代码中的drawOnCanvas方法使用了Canvas类,该类在API级别21(即Android 5.0 Lollipop)才被引入。通过在方法前加上@RequiresApi注解并指定所需的API级别,可以确保只有在达到或超过API级别21的设备上才会调用该方法。
通过使用@requiresapi注解,我们可以更加灵活地管理不同API级别的设备,并避免在低版本设备上出现不支持的API导致的问题。
阅读全文
相关推荐














