我如何使用 android contentResolver/Mediastore 暴露的 jetbrains
How do I use jetbrains exposed with android contentResolver/Mediastore
我正在尝试制作一个可以远程控制的简单 android 媒体播放器应用程序。目前,我正在尝试解决 phone 上 artists/albums/songs 上发送所有信息的问题。目前我正在检索所有信息:
private val contentResolver = activity.contentResolver!!
fun getAll():Set<Album>{
val res = mutableSetOf<Album>()
val cursor = contentResolver.query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
arrayOf(
MediaStore.Audio.Albums.ALBUM,
MediaStore.Audio.Albums.ALBUM_ART,
MediaStore.Audio.Albums.NUMBER_OF_SONGS,
MediaStore.Audio.Albums.ARTIST)
,null,null)
if(cursor!!.moveToFirst())
do {
res.add(Album().apply {
name = cursor.getString(0)
if (!cursor.getString(1).isNullOrEmpty())
albumArtUri = Uri.parse(cursor.getString(1))
songCount = cursor.getInt(2)
artist = Artist().apply {
name = cursor.getString(3)
}
})
cursor.moveToNext()
}while (!cursor.isAfterLast)
cursor.close()
return res
}
看到我在使用游标,我以为我正在使用一种数据库(SQLite 左右)正如您所看到的,这只是一组信息很少的对象的大量代码;创建的专辑对象中没有歌曲。为此,您需要开始一个新的查询,开始一个新的 URI。现在我想我可以使用 ORM。所以我实际上可以用歌曲列表等填充专辑对象。我决定尝试 Jetbrains Exposed,键入:
val database = Database.connect(....)
我很茫然,我不知道如何连接到这个数据库。我似乎找不到任何关于如何开始的例子。
曝光是为了 JDBC。 ContentResolver
未使用 JDBC,并且 Cursor
不是来自 JDBC 的对象。一般来说,Android 不会在应用程序或 OS 级别使用 JDBC。
我正在尝试制作一个可以远程控制的简单 android 媒体播放器应用程序。目前,我正在尝试解决 phone 上 artists/albums/songs 上发送所有信息的问题。目前我正在检索所有信息:
private val contentResolver = activity.contentResolver!!
fun getAll():Set<Album>{
val res = mutableSetOf<Album>()
val cursor = contentResolver.query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
arrayOf(
MediaStore.Audio.Albums.ALBUM,
MediaStore.Audio.Albums.ALBUM_ART,
MediaStore.Audio.Albums.NUMBER_OF_SONGS,
MediaStore.Audio.Albums.ARTIST)
,null,null)
if(cursor!!.moveToFirst())
do {
res.add(Album().apply {
name = cursor.getString(0)
if (!cursor.getString(1).isNullOrEmpty())
albumArtUri = Uri.parse(cursor.getString(1))
songCount = cursor.getInt(2)
artist = Artist().apply {
name = cursor.getString(3)
}
})
cursor.moveToNext()
}while (!cursor.isAfterLast)
cursor.close()
return res
}
看到我在使用游标,我以为我正在使用一种数据库(SQLite 左右)正如您所看到的,这只是一组信息很少的对象的大量代码;创建的专辑对象中没有歌曲。为此,您需要开始一个新的查询,开始一个新的 URI。现在我想我可以使用 ORM。所以我实际上可以用歌曲列表等填充专辑对象。我决定尝试 Jetbrains Exposed,键入:
val database = Database.connect(....)
我很茫然,我不知道如何连接到这个数据库。我似乎找不到任何关于如何开始的例子。
曝光是为了 JDBC。 ContentResolver
未使用 JDBC,并且 Cursor
不是来自 JDBC 的对象。一般来说,Android 不会在应用程序或 OS 级别使用 JDBC。