赵工的个人空间


专业技术部分转网页计算转业余爱好部分


 手持终端

首页 > 专业技术 > 手持终端 > 获取Android系统信息
获取Android系统信息

Android是开放系统,通过Android.OS软件包提供了对系统信息的操作和获取,其中build类和Environment类是比较常用的两个类。build类提供了对一些直接与硬件相关的信息的获取,例如硬件厂商、序列号和SDK版本等信息;Environment类则提供了对一些常用的Android环境变量的获取,包括典型的文件目录和SD卡的状态等。

1.build类:构建信息

在Android系统中,通过OS软件包提供了许多与硬件直接相关的信息,其中一类信息是构建信息,通过build类来实现。所谓构建,就是一个Android系统的底层实现方式,build类提供了硬件厂商、编号、序列号、SDK版本等重要信息,这些信息与底层代码有关。
1)MODEL属性:手机型号
该属性用于获取Android手机的型号名称,其值为String字符串类型,用户可以在手机设置中查看该手机型号。语法:
public static final String MODEL
示例:
public class firstActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListenter(new View.OnClickListener(){
@Override
public void onClick(View v){
String info;
info=Build.MODEL;
Toast.makeText(getApplicationContext(),"手机型号为:"+info,
Toast.LENGTH_LONG).show();
}
});
}
}
2)SDK属性:SDK版本号
该属性用于获取Android手机的SDK版本号,其值为String字符串类型。语法:
public static final String SDK
示例:
info=Build.VERSION.SDK;
3)SDK_INI属性:SDK版本号
该属性用于获取Android手机的SDK版本号,其值为int整数类型。语法:
public static final String SDK_INI
示例:
info=Build.VERSION.SDK_INI;
4)RELEASE属性:获取系统版本
该属性用于获取Android手机的系统版本,其值为String字符串类型,一般取值为“1.0”、“2.2”等。语法:
public static final String RELEASE
示例:
info=Build.VERSION.RELEASE;
5)BOOTLOADER属性:bootloader版本号
该属性用于获取Android手机系统的bootloader版本号。bootloader为系统开机时的引导系统,其值为String字符串类型。语法:
public static final String BOOTLOADER
示例:
info=Build.BOOLOADER;
6)BOARD属性:底层板名称
该属性用于获取Android手机底层板的名称,其值为String字符串类型。如果底层板名称存在则返回名称值,否则返回unknown。语法:
public static final String BOARD
7)BRAND属性:品牌
该属性用于获取Android手机的品牌信息,其值为String字符串类型。品牌信息其实指的是哪个电信运营商定制的机型,如果品牌名称存在则返回名称值,否则返回unknown,该属性需要硬件设备的支持。语法:
public static final String BRAND
示例:
info=Build.BRAND;
8)CPU_ABI属性:指令集
该属性用于获取Android手机的CPU指令集名称,其值为String字符串类型,这里的指令集名称为CPU类型+ABI公约,如armeabl,该属性需要硬件设备的支持。语法:
public static final String CPU_ABI
示例:
info=Build.CPU_ABI;
9)CPU_ABI2属性:第二指令集
该属性用于获取Android手机的CPU第二指令集名称,其值为String字符串类型,这里的第二指令集名称为CPU类型+ABI公约,如armeabl,该属性需要硬件设备的支持。语法:
public static final String CPU_ABI2
10)DEVICE属性:工业设计名称
该属性用于获取Android手机的工业设计名称,其值为String字符串类型如果工业设计名称存在则返回名称值,否则返回unknown,该属性需要硬件设备的支持。语法:
public static final String DEVICE
示例:
info=Build.DEVICE;
11)DISPLAY属性:显示
该属性用于通过Android手机显示一个Id字符串,其值为String字符串类型。如果Id字符串存在则返回名称值,否则返回unknown,该属性需要硬件设备的支持。语法:
public static final String DISPLAY
示例:
info=Build.DISPLAY;
12)FINGERPRINT属性:构建的唯一标识符
该属性用于获取Android手机本次构建的唯一标识符,其值为String字符串类型。这个标识符是一个整体。如果此标识值存在则返回名称值,否则返回unknown,该属性需要硬件设备的支持。语法:
public static final String FINGERPRINT
示例:
info=Build.FINGERPRINT;
13)HARDWARE属性:硬件名称
该属性用于获取Android手机的硬件名称,其值为String字符串类型。这个硬件名称是从内核命令行或/proc提取的。如果硬件名称存在则返回名称值,否则返回unknown,该属性需要硬件设备的支持。语法:
public static final String HARDWARE
示例:
info=Build.HARDWARE;
14)HOST属性:主机
该属性用于获取Android手机的主机名称,其值为String字符串类型。如果主机名称存在则返回名称值,否则返回unknown,该属性需要硬件设备的支持。语法:
public static final String HOST
示例:
info=Build.HOST;
15)ID属性:ID标签
该属性用于获取Android手机的变更号码,或者类似于“M4-RC20”的标签,其值为String字符串类型。如果ID标签存在则返回名称值,否则返回unknown,该属性需要硬件设备的支持。语法:
public static final String ID
示例:
info=Build.ID;
16)MUNUFACTURER属性:制造商
该属性用于获取Android手机的产品/硬件制造商,其值为String字符串类型。如果制造商名称存在则返回名称值,否则返回unknown,该属性需要硬件设备的支持。语法:
public static final String MUNUFACTURER
示例:
info=Build.MUNUFACTURER;
17)PRODUCT属性:产品名称
该属性用于获取Android手机的整体产品名称,其值为String字符串类型。如果整体产品名称存在则返回名称值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final String PRODUCT
示例:
info=Build.PRODUCT;
18)RADIO属性:无线电固件版本号
该属性用于获取Android手机的无线电固件版本号,其值为String字符串类型。如果无线电固件版本号存在则返回名称值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final String RADIO
示例:
info=Build.RADIO;
19)SERIAL属性:硬件序列号
该属性用于获取Android手机的硬件序列号,其值为String字符串类型。硬件序列号只有字母、数字,不区分大小写。如果硬件序列号存在则返回名称值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final String SERIAL
示例:
info=Build.SERIAL;
20)TAGS属性:标签
该属性用于获取Android手机的关于构建的标签,其值为String字符串类型。如果构建标签存在则返回名称值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final String TAGS
示例:
info=Build.TAGS;
21)TIME属性:出厂时间
该属性用于获取Android手机的出厂时间信息,其值为long长整数类型。如果出厂时间存在则返回时间值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final long TIME
示例:
info=Build.TIME;
22)TYPE属性:构建类型
该属性用于获取Android手机的构建类型,其值为String字符串类型。如果构建类型存在则返回名称值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final String TYPE
示例:
info=Build.TYPE;
23)USER属性:构建用户名称
该属性用于获取Android手机的构建用户名称,其值为String字符串类型。如果构建用户名存在则返回名称值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final String USER
示例:
info=Build.USER;
24)CODENAME属性:开发代号
该属性用于获取Android手机的当前开发代号,其值为String字符串类型。如果开发代号存在则返回名称值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final String CODENAME
示例:
info=Build.CODENAME;
25)INCREMENTAL属性:构建增量
该属性用于获取Android手机的当前构建增量,其值为String字符串类型。构建增量由底层源代码控制。如果构建增量存在则返回名称值,否则将返回unknown,该属性需要硬件设备的支持。语法:
public static final String INCREMENTAL
示例:
info=Build.INCREMENTAL;

2.Environment类:环境变量类

Environment类提供了一些常用的Android环境变量的访问和获取,包括典型的文件目录,例如root目录、data目录和外部SD卡目录等。此外,Environment类还提供了一些SD卡状态的检测方法,可以帮助应用程序了解外部存储设备的状态信息。
1)getDataDirectory方法:获取数据目录
该方法用于获取Android手机的数据目录,返回值为File类型。Android的数据目录是系统的一个重要环境变量,很多应用程序的数据都保存在这里,包括数据库操作。语法格式:
public static File getDataDirectory()
示例:
File f=Environment.getDataDirectory();
String str="Android数据目录:"+f.getPath().toString();
2)getDownloadCacheDirectory方法:获取下载缓存目录
该方法用于获取Android手机的下载/缓存目录,返回值为File类型。该目录主要用于保存一些下载内容或者缓存信息,如通过Android手机的浏览器下载的内容将存放在该目录下。一些Android系统清理软件会获取该目录,并清理相应的垃圾文件。语法格式:
public static File getDownloadCacheDirectory()
3)getExternalStorageDirectory方法:获取外部存储目录
该方法用于获取Android手机的外部存储目录,返回值为File类型。该目录主要用于保存用户数据,也就是用户的外置SD卡。语法格式:
public static File getExternalStorageDirectory()
4)getRootDirectory方法:获取root目录
该方法用于获取Android手机的root目录,返回值为File类型。该目录是Android系统最重要的目录,包括了Android OS的重要数据,用户一般不能修改。语法格式:
public static File getRootDirectory()
5)getExternalStoragePublicDirectory方法:获取特定类型目录
该方法用于获取Android手机的特定类型目录,需要指定文件类型,返回值为File类型。Android系统通过该方法可以获取一些特定类型文件的通常保存目录,如铃声目录、图片目录、电影目录、音乐目录等。语法格式:
public static File getExternalStoragePublicDirectory(String type)
其中,参数type为目录类型,Android系统支持的目录类型为:
·DIRECTORY_MUSIC:音乐目录
·DIRECTORY_PODCASTS:播客目录
·DIRECTORY_RINGTONES:铃声目录
·DIRECTORY_ALARMS:闹铃目录
·DIRECTORY_NOTIFICATIONS:提示目录
·DIRECTORY_PICTURES:图片目录
·DIRECTORY_MOVIES:电影目录
·DIRECTORY_DOWNLOADS:下载目录
·DIRECTORY_DCIM:照片目录
示例:
File f=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
String str="Android照片目录:"+f.getPath().toString();
6)getExternalStorageState方法:获取外部存储状态
该方法用于获取Android手机的外部存储状态,一般指的是外部SD卡。Android系统可以通过该方法实时掌握SD卡的状态,目前支持的状态包括:
·MEDIA_BAD_REMOVAL:媒体在停止之前,SD卡被卸载
·MEDIA_CHECKING:磁盘检查
·MEDIA_MOUNTED:可以正常读/写
·MEDIA_MOUNTED_READ_ONLY:只读
·MEDIA_NOFS:空白,或不支持的文件系统
·MEDIA_REMOVED:SD卡不存在
·MEDIA_SHARED:SD卡没有安装,现在正通过USB海量存储共享
·MEDIA_UNMOUNTABLE:媒体存在,但文件系统损坏不能安装
·MEDIA_UNMOUNTED:媒体存在,但没有安装
语法格式:
public static String getExternalStorageState()
7)isExternalStorageEmulated方法:检查是否有外部存储设备模拟
该方法用于检查Android手机是否有外部存储设备模拟。如果返回值为true,表示设备不具有真正的外部存储,其使用内部存储系统的一部分作为外部存储设备,也就是模拟外部存储设备;如果返回值为false,则表示没有模拟外部存储设备。语法格式:
public static boolean isExternalStorageEmulated()
8)isExternalStorageRemovable方法:外部存储设备是否可以移除
该方法用于检查Android手机的外部存储设备是否可以移除。如果返回值为true,表示外部存储设备可以被移除;如果返回值为false,表示外部存储设备不可以被移除。语法格式:
public static boolean isExternalStorageRemovable()

Copyright@dwenzhao.cn All Rights Reserved   备案号:粤ICP备15026949号
联系邮箱:dwenzhao@163.com  QQ:1608288659