Android:默认手机存储路径为TF卡
16lz
2021-01-26
处理的方法是当手机中存在TF卡时接收系统的广播,然后进行后续功能实现的操作。步骤如下:
一:在AndroidManifest.xml中添加如下:
二:添加.java文件,实现存储TF卡的功能 package com.android.settings.zf;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.os.UserHandle;import android.os.storage.StorageManager;import android.util.Log;import java.util.ArrayList;import java.util.List;import android.os.storage.StorageVolume;import com.mediatek.storage.StorageManagerEx;public class ZfDefaultSDReceiver extends BroadcastReceiver { private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0x01: setDefault(); break; default: break; } } }; private StorageManager mStorageManager; @Override public void onReceive(Context context, Intent intent) { mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); mHandler.sendEmptyMessage(0x01); } private void setDefault() { StorageVolume[] availableVolumes = getDefaultWriteDiskList(); for (StorageVolume volume : availableVolumes) { String path = volume.getPath(); if(FeatureOption.MTK_2SDCARD_SWAP) {//支持APK应用可以移动到SD卡 if(path != null && !"/storage/sdcard1".equals(path)) { StorageManagerEx.setDefaultPath(path); break; } } else { if(path != null && !"/storage/emulated/0".equals(path)) { StorageManagerEx.setDefaultPath(path); break; } } } } private StorageVolume[] getDefaultWriteDiskList() { List storageVolumes = new ArrayList(); StorageVolume[] volumes = mStorageManager.getVolumeList(); for (StorageVolume volume : volumes) { if (Environment.MEDIA_MOUNTED.equals(mStorageManager.getVolumeState(volume.getPath()))) { storageVolumes.add(volume); } } return storageVolumes.toArray(new StorageVolume[storageVolumes.size()]); }}
备注:存储,默认为手机存储,格式化手机存储后会默认到SD卡的问题
这个是正常现象,格式化的真正流程是:unmount-》格式化-》mount,因为在格式化手机存储的时候,首先要进行的动作是unmount 手机存储,这样手机存储这块就不在了,所有手机会自动跳转到默认存储为SD卡上。之后格式化手机存储
后,又会mount 手机存储,手机能看到手机存储这块空间,但是默认存储空间不会自动跳转,需要手动切换。
更多相关文章
- android 获得一个应用程序的启动次数,运行时间等信息
- Android手机记账应用开发视频教程
- Android(安卓)Studio 在默认build.gradle 中加入自定义源(新建项
- Android(安卓)Togglebutton 默认背景被放大
- 5分钟实现Android手机上的指南针应用
- 电脑导出文件到手机 adb push
- ANDROID备份
- Android(安卓)Studio 真机调试vivo系列手机安装失败处理
- android默认关闭Location服务及关闭锁屏功能