您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
18_知识点怎么获取sd卡的大小
发布时间:2021-02-08 13:59:57编辑:雪饮阅读()
获取sd卡存储容量
这是参照自一个安卓的setting源代码中而来的
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import java.io.File;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText mEtName;
private EditText mEtPwd;
private Button mBtLogin;
private CheckBox mcb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEtName=(EditText) this.findViewById(R.id.et_name);
mEtPwd=(EditText) this.findViewById(R.id.et_pwd);
mBtLogin=(Button) this.findViewById(R.id.bt_login);
mcb=(CheckBox) this.findViewById(R.id.cb_remember_pwd);
mBtLogin.setOnClickListener(this);
getSdSize();
}
public void getSdSize(){
File path= Environment.getExternalStorageDirectory();
StatFs stat=new StatFs(path.getPath());
long blockSize=stat.getBlockSize();
long totalBlocks=stat.getBlockCount();
long totalbytes=blockSize*totalBlocks;
double M=totalbytes/1024/1024;
Toast.makeText(this, "大小:"+totalbytes+"byte,"+M+"M", Toast.LENGTH_LONG).show();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_login:
if(mcb.isChecked()){
SavePwdService service = new SavePwdService(this);
String name = mEtName.getText().toString().trim();
String pwd = mEtPwd.getText().toString().trim();
service.saveToSDcard(name, pwd);
Toast.makeText(this, "保存成功....", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this, "登陆中....", Toast.LENGTH_LONG).show();
}
break;
}
}
}
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import java.io.File;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText mEtName;
private EditText mEtPwd;
private Button mBtLogin;
private CheckBox mcb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEtName=(EditText) this.findViewById(R.id.et_name);
mEtPwd=(EditText) this.findViewById(R.id.et_pwd);
mBtLogin=(Button) this.findViewById(R.id.bt_login);
mcb=(CheckBox) this.findViewById(R.id.cb_remember_pwd);
mBtLogin.setOnClickListener(this);
getSdSize();
}
public void getSdSize(){
File path= Environment.getExternalStorageDirectory();
StatFs stat=new StatFs(path.getPath());
long blockSize=stat.getBlockSize();
long totalBlocks=stat.getBlockCount();
long totalbytes=blockSize*totalBlocks;
double M=totalbytes/1024/1024;
Toast.makeText(this, "大小:"+totalbytes+"byte,"+M+"M", Toast.LENGTH_LONG).show();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_login:
if(mcb.isChecked()){
SavePwdService service = new SavePwdService(this);
String name = mEtName.getText().toString().trim();
String pwd = mEtPwd.getText().toString().trim();
service.saveToSDcard(name, pwd);
Toast.makeText(this, "保存成功....", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this, "登陆中....", Toast.LENGTH_LONG).show();
}
break;
}
}
}
可以看到获取的是安卓可用存储,而实际的sd卡没有挂载的时候该代码也能正常执行。
那么我这里实际的sd卡存储容量则是
关键字词:android,sd