阳光沙滩-课程笔记 阳光沙滩-课程笔记
首页 (opens new window)
VIP (opens new window)
  • 课程笔记

    • 《Android项目喜马拉雅FM》
    • 《Android项目领券联盟》
    • 《AndroidStudio技巧》
    • 《Android自定义控件》
    • 《Android开发基础》
    • 《Android约束布局》
    • 《AOSP安卓开源项目》
    • 《RecyclerView》
  • 《领券联盟Nuxt.js》
  • 《博客系统后台管理系统vue.js》
  • 《博客系统门户Nuxt.js》
  • 《博客系统前后端分离后台》
  • 《博客系统部署》
  • 《摸鱼君后台》
  • 《OTA升级管理系统》
  • 阳光沙滩API (opens new window)
  • 领券联盟API (opens new window)
  • 博客系统API (opens new window)
首页 (opens new window)
VIP (opens new window)
  • 课程笔记

    • 《Android项目喜马拉雅FM》
    • 《Android项目领券联盟》
    • 《AndroidStudio技巧》
    • 《Android自定义控件》
    • 《Android开发基础》
    • 《Android约束布局》
    • 《AOSP安卓开源项目》
    • 《RecyclerView》
  • 《领券联盟Nuxt.js》
  • 《博客系统后台管理系统vue.js》
  • 《博客系统门户Nuxt.js》
  • 《博客系统前后端分离后台》
  • 《博客系统部署》
  • 《摸鱼君后台》
  • 《OTA升级管理系统》
  • 阳光沙滩API (opens new window)
  • 领券联盟API (opens new window)
  • 博客系统API (opens new window)
  • Android开发基础

  • Android项目-喜马拉雅FM

  • Android项目-领券联盟

  • AndroidStudio使用技巧

  • Android-Jetpack

  • ConstraintLayout

  • RecyclerView

  • 自定义控件系列

  • AOSP

    • AOSP课程计划
    • AOSP团队开发模式
    • Android格式化sd卡
      • Android5.1格式化sd卡
    • AOSP-android必备基础知识 Linux Shell
    • AOSP日记,修改分辨率,修改dpi,全屏禁止下拉拖出状态栏
    • Android系统编译说明(AOSP)
    • Android系统编译-AOSP-创建自己公司的产品
    • AOSP-Android系统定制下载系统源码
    • AOSP-Android系统源码目录结构
    • 常见的变量说明
    • 编译Android系统的步骤
    • 安装Samba
    • AOSP-Repo代码管理
    • Android.mk
    • 编译可执行so库和可执行程序
    • AOSP-Androidmk里:=与+=的区别是啥?
    • 创建属于自己的产品
    • iphone12
  • ADB

  • 安卓
  • AOSP
TrillGates
2021-09-25
目录

Android格式化sd卡

# Android5.1格式化sd卡

今天下午在做一个格式化的,看了一下系统的API,实现了。分享给大家吧。

权限:

1、声明

   <uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"/>
1

2、需要系统签名,也就是说放到系统里面编译或者用系统签名来签名。

代码如下:

public void formatSdcard() {
        Observable.create(new ObservableOnSubscribe<Object>() {
            @Override
            public void subscribe(ObservableEmitter<Object> observableEmitter) {
                StorageManager localObject = StorageManager.from(BaseApplication.getAppContext());
                Intent paramView = new Intent("com.android.internal.os.storage.FORMAT_ONLY");
                paramView.setComponent(ExternalStorageFormatter.COMPONENT_NAME);
                StorageVolume[] storageVolumes = localObject.getVolumeList();
                int i = 0;
                while (i < storageVolumes.length) {
                    if (storageVolumes[i].getPath().equals("/storage/sdcard1")) {
                        paramView.putExtra("storage_volume", storageVolumes[i]);
                        BaseApplication.getAppContext().startService(paramView);
                    }
                    i += 1;
                }
            }
        }).subscribeOn(Schedulers.io()).subscribe();
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

相关的API,直接上代码肯定是跑不了的,看下图吧:

20190520_204332.png

我们看一下爆红的地方:

第一个StorageManager.from(Context context)

20190520_204454.png

第二个:

localObject.getVolumeList()

20190520_204606.png

启动服务,格式化

while (i < storageVolumes.length) {
                    if (storageVolumes[i].getPath().equals("/storage/sdcard1")) {
                        paramView.putExtra("storage_volume", storageVolumes[i]);
                        BaseApplication.getAppContext().startService(paramView);
                    }
                    i += 1;
                }
1
2
3
4
5
6
7
编辑 (opens new window)
AOSP团队开发模式
AOSP-android必备基础知识 Linux Shell

← AOSP团队开发模式 AOSP-android必备基础知识 Linux Shell→

Theme by Vdoing | Copyright © 2022-2022 sunofbeach.net
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式