Android:默认手机存储路径为TF卡

编程入门 行业动态 更新时间:2024-10-27 06:19:12

Android:默认手机存储<a href=https://www.elefans.com/category/jswz/34/1771438.html style=路径为TF卡"/>

Android:默认手机存储路径为TF卡

处理的方法是当手机中存在TF卡时接收系统的广播,然后进行后续功能实现的操作。步骤如下:

一:在AndroidManifest.xml中添加如下:

    <!--M:lyj if you have a TF card In the mobile phone , storage priority choose it --><receiver android:name=".zf.ZfDefaultSDReceiver"><intent-filter><action android:name="android.intent.action.MEDIA_MOUNTED"/><data android:scheme="file"/></intent-filter></receiver>
 二:添加.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() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case 0x01:setDefault();break;default:break;}}};private StorageManager mStorageManager;@Overridepublic 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<StorageVolume> storageVolumes = new ArrayList<StorageVolume>();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:默认手机存储路径为TF卡

本文发布于:2024-03-15 09:48:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738614.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路径   手机   Android   TF

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!