需求:mtp文件只显示record文件夹,且record文件夹下只显示3个文件夹,分别为:record,recorda,recordtest。且mtp文件只可读,不可写,不可删除。
需求拆分如下:
- sdcard目录下新建文件夹record;
- mtp文件夹只保留record及其三个子文件夹;
- mtp文件禁用新建,拷贝,移动,删除等功能;
需求一,sdcard目录下新建文件夹record,修改文件路径为:
alps\frameworks\base\core\java\android\os\Environment.java
alps\packages\providers\mediaprovider\src\com\android\providers\media\MediaProvider.java
要点:参考已有文件夹Audiobooks来新建文件夹record。
修改内容如下,//add by lj 为代码搜索的关键字
Environment.java文件:
/**
* Standard directory in which to place any record files which are
* record.
* @hide
*/
public static final String DIRECTORY_RECORD = "record";//add by lj
...
public static final String[] STANDARD_DIRECTORIES = {
DIRECTORY_MUSIC,
DIRECTORY_PODCASTS,
DIRECTORY_RINGTONES,
DIRECTORY_ALARMS,
DIRECTORY_NOTIFICATIONS,
DIRECTORY_PICTURES,
DIRECTORY_MOVIES,
DIRECTORY_DOWNLOADS,
DIRECTORY_DCIM,
DIRECTORY_DOCUMENTS,
DIRECTORY_AUDIOBOOKS,
DIRECTORY_RECORD,//add by lj
};
...
/** {@hide} */ public static final int HAS_RECORD = 1 << 11;//add by lj
...
else if (DIRECTORY_RECORD.equals(name)) res |= HAS_RECORD;//add by lj
MediaProvider.java文件:
private static final String DIRECTORY_RECORD = "record";//add by lj
...
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,
Environment.DIRECTORY_AUDIOBOOKS,