如何获取Android Preferences DataStore的所有键

T D*_*yen 2 android android-preferences android-jetpack-datastore

正如标题所提到的,有什么方法可以获取存储在 Android Jetpack Preferences DataStore中的所有密钥,例如,dataStore

val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
Run Code Online (Sandbox Code Playgroud)

Yun*_*s D 5

用于获取所有密钥

suspend fun Context.readAllKeys(): Set<Preferences.Key<*>>? {
    val keys = dataStore.data
        .map {
           it.asMap().keys
        }
    return keys.firstOrNull()
}
Run Code Online (Sandbox Code Playgroud)

通过它的关键来获取价值

suspend fun Context.getValueByKey(key: Preferences.Key<*>): Any? {
    val value = dataStore.data
        .map {
            it[key]
        }
    return value.firstOrNull()
}
Run Code Online (Sandbox Code Playgroud)