【发布时间】:2016-06-01 12:42:16
【问题描述】:
我正在构建一个自定义 Marshmallow Android 版本,我想在 首次启动时向 sdcard 添加一些文件 - 具体来说,我希望同时创建它们 DCIM、下载、正在创建铃声等。
默认文件夹结构是什么时候创建的?
【问题讨论】:
标签: android android-6.0-marshmallow android-source android-sdcard
我正在构建一个自定义 Marshmallow Android 版本,我想在 首次启动时向 sdcard 添加一些文件 - 具体来说,我希望同时创建它们 DCIM、下载、正在创建铃声等。
默认文件夹结构是什么时候创建的?
【问题讨论】:
标签: android android-6.0-marshmallow android-source android-sdcard
虽然理论上您可以通过对字符串进行全文搜索来找到这类事情,但在数 GB 的代码库上这可能需要一段时间,因此有助于对查找位置进行一些很好的猜测。
事实证明,默认文件夹是在位于 packages/providers/MediaProvider 的MediaProvider.Java 中创建的
根据特定的 Android 版本,该方法可能被称为 ensureDefaultFolders() 或 createDefaultFolders() 或其他名称。例如:
private static final String[] sDefaultFolderNames = {
Environment.DIRECTORY_MUSIC,
Environment.DIRECTORY_PODCASTS,
Environment.DIRECTORY_RINGTONES,
Environment.DIRECTORY_ALARMS,
Environment.DIRECTORY_NOTIFICATIONS,
Environment.DIRECTORY_PICTURES,
Environment.DIRECTORY_MOVIES,
Environment.DIRECTORY_DOWNLOADS,
Environment.DIRECTORY_DCIM,
};
/**
* Ensure that default folders are created on mounted primary storage
* devices. We only do this once per volume so we don't annoy the user if
* deleted manually.
*/
private void ensureDefaultFolders(DatabaseHelper helper, SQLiteDatabase db)
【讨论】: