#android #kotlin #android-activity #assets #android-context
#Android #kotlin #android-активность #активы #android-контекст
Вопрос:
В моем приложении я размещаю вспомогательные методы на верхнем уровне, не содержащиеся ни в одном классе, поэтому я могу вызвать любой из них из любого места. И у меня есть папка активов (app / src / main / assets) с текстовыми файлами в ней.
Я получаю доступ к этой папке внутри основного действия, используя этот код
val file: String = applicationContext.assets.open("folderInAssets/filename.txt").bufferedReader().use {
it.readText()
}
Однако, похоже, что я не могу получить доступ к папке активов из внешних действий или классов. applicationContext
не определено, и я не могу получить доступ к Context
. Я также пытался
Application().assets.open(...)
но это выдает мне ошибку: java.lang.Исключение NullPointerException: попытка вызвать виртуальный метод ‘android.content.res.AssetManager android.content.Context.getAssets()’ для нулевой ссылки на объект
Мой вопрос: Как я могу получить доступ к папке из функции верхнего уровня в Kotlin? И есть ли предпочтительный способ «Kotlinic» для определения вспомогательных методов в приложении?
Заранее спасибо.
Комментарии:
1. Предоставьте ему общий URI. Прочитайте
FileProvider.getUriForFile()
2. Передать контекст вашей функции?
3. @SaeedEntezari Я думал об этом, но должен быть более абстрактный способ.