Android 获取手机以及内存卡信息并显示

在开发Android应用程序时,有时需要获取手机以及内存卡的信息,例如手机型号、内存大小、存储空间等。本文将介绍如何使用Android的API来获取手机以及内存卡的信息,并将这些信息显示在应用程序中。

获取手机信息

首先,我们来获取手机的一些基本信息,例如手机型号、制造商、系统版本等。我们可以使用Build类提供的一些静态字段来获取这些信息。

String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
String osVersion = Build.VERSION.RELEASE;

Log.d("Phone Info", "Manufacturer: " + manufacturer);
Log.d("Phone Info", "Model: " + model);
Log.d("Phone Info", "OS Version: " + osVersion);

上面的代码中,我们通过Build类获取了手机的制造商、型号和系统版本,并将这些信息打印输出。

获取存储空间信息

接下来,我们来获取手机存储空间以及内存卡的信息。我们可以使用Environment类提供的一些静态方法来获取存储空间的信息。

StatFs internalStatFs = new StatFs(Environment.getDataDirectory().getPath());
long totalInternalSpace = internalStatFs.getBlockSizeLong() * internalStatFs.getBlockCountLong();
long availableInternalSpace = internalStatFs.getBlockSizeLong() * internalStatFs.getAvailableBlocksLong();

StatFs externalStatFs = new StatFs(Environment.getExternalStorageDirectory().getPath());
long totalExternalSpace = externalStatFs.getBlockSizeLong() * externalStatFs.getBlockCountLong();
long availableExternalSpace = externalStatFs.getBlockSizeLong() * externalStatFs.getAvailableBlocksLong();

Log.d("Storage Info", "Total Internal Space: " + totalInternalSpace + " bytes");
Log.d("Storage Info", "Available Internal Space: " + availableInternalSpace + " bytes");
Log.d("Storage Info", "Total External Space: " + totalExternalSpace + " bytes");
Log.d("Storage Info", "Available External Space: " + availableExternalSpace + " bytes");

上面的代码中,我们通过StatFs类来获取存储空间的总大小和可用空间,分别对应手机内部存储和内存卡。然后将这些信息打印输出。

显示信息

获取手机以及内存卡的信息后,我们可以将这些信息显示在应用程序中,以便用户查看。可以使用TextView来显示这些信息。

<TextView
    android:id="@+id/phoneInfo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<TextView
    android:id="@+id/storageInfo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
TextView phoneInfoTextView = findViewById(R.id.phoneInfo);
phoneInfoTextView.setText("Manufacturer: " + manufacturer + "\nModel: " + model + "\nOS Version: " + osVersion);

TextView storageInfoTextView = findViewById(R.id.storageInfo);
storageInfoTextView.setText("Total Internal Space: " + totalInternalSpace + " bytes\nAvailable Internal Space: " + availableInternalSpace + " bytes\nTotal External Space: " + totalExternalSpace + " bytes\nAvailable External Space: " + availableExternalSpace + " bytes");

上面的代码中,我们分别使用两个TextView来显示手机信息和存储空间信息。将获取到的信息设置到相应的TextView中。

饼状图显示占用比例

最后,我们可以使用饼状图来显示存储空间的占用比例。下面是一个示例的饼状图,用来展示手机内部存储和内存卡的空间占用情况。

pie
    title Storage Space
    "Internal Space" : 70
    "External Space" : 30

总结

通过本文的介绍,我们学习了如何使用Android的API来获取手机以及内存卡的信息,并将这些信息显示在应用程序中。同时,我们也了解了如何使用饼状图来展示存储空间的占用比例。希望本文对你有所帮助,谢谢阅读!