安卓设备信息

13

是否有用于以编程方式提取有关当前Android设备信息的API?例如,像“型号”,“操作系统”等属性。

这将是iOS的UIDevice类和实例属性的类比。


可以尝试使用 Build.SERIAL。 - kumar
可能是重复的问题,关于如何检测系统信息,例如操作系统或设备类型,请参考如何检测系统信息,例如操作系统或设备类型 - Artjom B.
3个回答

27

试试这个:

String _OSVERSION = System.getProperty("os.version");
String _RELEASE = android.os.Build.VERSION.RELEASE;
String _DEVICE = android.os.Build.DEVICE; 
String _MODEL = android.os.Build.MODEL; 
String _PRODUCT = android.os.Build.PRODUCT; 
String _BRAND = android.os.Build.BRAND; 
String _DISPLAY = android.os.Build.DISPLAY; 
String _CPU_ABI = android.os.Build.CPU_ABI; 
String _CPU_ABI2 = android.os.Build.CPU_ABI2; 
String _UNKNOWN = android.os.Build.UNKNOWN; 
String _HARDWARE = android.os.Build.HARDWARE;
String _ID = android.os.Build.ID; 
String _MANUFACTURER = android.os.Build.MANUFACTURER; 
String _SERIAL = android.os.Build.SERIAL; 
String _USER = android.os.Build.USER; 
String _HOST = android.os.Build.HOST;

更多信息请参考http://developer.android.com/reference/android/os/Build.html


2
System.getProperty("os.version") 返回的是 Linux 版本而不是 Android 操作系统版本。 - Karioki
1
我错误地将其视为Android版本,所以其他人可能也会这样认为。很抱歉没有以正确的方式表达。 - Karioki
1
使用android.os.Build.VERSION.SDK_INT获取Android的SDK/API版本号。 - Pedro Lobito

24

您可以使用类android.os.Build获取大部分设备信息。

例如:

String myDeviceModel = android.os.Build.MODEL;

我可以使用它来提取操作系统的版本(例如“Android 2.2”)吗? - Ken
你可以使用以下链接来查看相关信息:http://developer.android.com/reference/android/os/Build.VERSION.html - roundhill

4
试试这个吧,我已经为你们所有人做到了超级简单:
只需调用此方法:getDeviceSuperInfo();
private void getDeviceSuperInfo() {
    Log.i(TAG, "getDeviceSuperInfo");

    try {

        String s = "Debug-infos:";
        s += "\n OS Version: "      + System.getProperty("os.version")      + "(" + android.os.Build.VERSION.INCREMENTAL + ")";
        s += "\n OS API Level: "    + android.os.Build.VERSION.SDK_INT;
        s += "\n Device: "          + android.os.Build.DEVICE;
        s += "\n Model (and Product): " + android.os.Build.MODEL            + " ("+ android.os.Build.PRODUCT + ")";

        s += "\n RELEASE: "         + android.os.Build.VERSION.RELEASE;
        s += "\n BRAND: "           + android.os.Build.BRAND; 
        s += "\n DISPLAY: "         + android.os.Build.DISPLAY; 
        s += "\n CPU_ABI: "         + android.os.Build.CPU_ABI; 
        s += "\n CPU_ABI2: "        + android.os.Build.CPU_ABI2; 
        s += "\n UNKNOWN: "         + android.os.Build.UNKNOWN; 
        s += "\n HARDWARE: "        + android.os.Build.HARDWARE;
        s += "\n Build ID: "        + android.os.Build.ID; 
        s += "\n MANUFACTURER: "    + android.os.Build.MANUFACTURER; 
        s += "\n SERIAL: "          + android.os.Build.SERIAL; 
        s += "\n USER: "            + android.os.Build.USER; 
        s += "\n HOST: "            + android.os.Build.HOST;


        Log.i(TAG + " | Device Info > ", s);

    } catch (Exception e) {
        Log.e(TAG, "Error getting Device INFO");
    }

}//end getDeviceSuperInfo

4
这是一个使用 StringBuilder / StringBuffer 的完美示例 :) - Langusten Gustel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接