usb连接的PTP模式,同时显示内置、外置SD卡内容
来源:互联网 发布:天猫魔盒软件下载 编辑:程序博客网 时间:2024/04/29 05:47
原生态的android中,PTP只支持本地存储设备,外部sd设备没有添加。但可以通过修改代码添加,前提是你必须要有android的源码,我的是在MTK平台下面开发的。
修改文件:
1:...\os\Enviroment.java
添加下面两行代码
public static String DIRECTORY_SD2_PICTURES = "Pictures2"; public static String DIRECTORY_SD2_DCIM = "DCIM2";2: packages\privoiders\MediaProvider\src\com\android\providers\media\MtpService.java
//add for two PTP disk. start. private static final String[] PTP_DIRECTORIES_SD2 = new String[] { Environment.DIRECTORY_SD2_DCIM, Environment.DIRECTORY_SD2_PICTURES, }; //add for two PTP disk. end.
3. private void addStorageDevicesLocked() { /*if (mPtpMode) { // In PTP mode we support only primary storage final StorageVolume primary = StorageManager.getPrimaryVolume(mVolumes); final String path = primary.getPath(); if (path != null) { String state = mStorageManager.getVolumeState(path); if (Environment.MEDIA_MOUNTED.equals(state)) { addStorageLocked(mVolumeMap.get(path)); } } } else cancelled. for PTP two disk. */{ for (StorageVolume volume : mVolumeMap.values()) { addStorageLocked(volume); } } } 4. @Override public int onStartCommand(Intent intent, int flags, int startId) { synchronized (mBinder) { updateDisabledStateLocked(); isUsbConfigured = (intent == null ? false :intent.getBooleanExtra(UsbManager.USB_CONFIGURED, false)); mPtpMode = (intent == null ? false : intent.getBooleanExtra(UsbManager.USB_FUNCTION_PTP, false)); String[] subdirs = null; if (mPtpMode) { int count = PTP_DIRECTORIES.length; int count2 = PTP_DIRECTORIES_SD2.length; //add. for PTP two disks. subdirs = new String[count+count2]; //add. for PTP two disk. for (int i = 0; i < count; i++) { File file = Environment.getExternalStoragePublicDirectory(PTP_DIRECTORIES[i]); // make sure this directory exists file.mkdirs(); subdirs[i] = file.getPath(); } for (int i = count; i < count+count2; i++) { //modify. for PTP two disks. File file = new File(System.getenv("SECONDARY_STORAGE"), PTP_DIRECTORIES_SD2[i-count]); //wqtao. modify. for PTP two disks. // make sure this directory exists file.mkdirs(); subdirs[i] = file.getPath(); } } 5. private void volumeMountedLocked(String path) { // Add for update Storage StorageVolume[] volumes = mStorageManager.getVolumeList(); mVolumes = volumes; // Add for update Storage for (int i = 0; i < mVolumes.length; i++) { StorageVolume volume = mVolumes[i]; if (volume.getPath().equals(path)) { mVolumeMap.put(path, volume); if (!mMtpDisabled) { // In PTP mode we support only primary storage /*if (volume.isPrimary() || !mPtpMode) cancelled. for PTP two disk. */{ addStorageLocked(volume); } } break; } } }先./mk [Your ProjectName] update-api,再remake.
0 0
- usb连接的PTP模式,同时显示内置、外置SD卡内容
- USB选择PTP功能时,如何同时显示内置、外置SD卡内容
- Android获取内置和外置sd卡路径的方法
- 获取外置卡、内置卡、USB路径的封装类
- Android判断获取内置外置sd卡
- android安卓让你的16g,32g外置SD卡瞬间变成内置SD卡
- Android中获取内置SD卡和外置SD卡路径的方法
- 获取外置的SD卡
- 获取SD卡 tf卡 内置外置存储卡路径名称 路径的方式
- Android中的Environment.getExternalStorageState使用,对内置外置SD卡的判断
- android获取内置和外置SD卡路径
- Android判断获取内置外置sd卡demo
- android获取内置和外置SD卡路径
- Android 总结外置 内置SD卡路径问题
- android获取内置和外置SD卡路径
- android获取内置和外置SD卡路径
- Anroid获取内置外置SD卡路径以及读写测试
- android获取内置和外置SD卡路径
- nyoj 括号匹配(二)(区间dp)
- mysql获取当前日期所在周(原则:每年1月1号所在周为第一周,最少1天,12月31日为最后一周)
- PAT A 1056. Mice and Rice (25)
- 南阳448 寻找最大数
- 职场中第一份工作教会我们的事
- usb连接的PTP模式,同时显示内置、外置SD卡内容
- 我不愿让你一个人
- Android 4.x开机读取SIM卡联系人一些相关的东东
- Vista UAC中把应用程序标注为“需要管理员权限”的四种方法
- 全民小镇刷钻石攻略 土豪不是梦
- 发现CakePHP传递到Controller时数据值是对的,但是输出SQL语句后发现那个值一直是“1”
- 成为Java GC专家(6):JDBC连接池如何影响垃圾回收
- php 新增mysql分表后同步创建新的合并表
- 【栈和队列】栈