Android:以编程方式获取硬件信息

Android:以编程方式获取硬件信息,android,android-hardware,Android,Android Hardware,我需要在运行我的应用程序的Android设备上获取硬件相关信息。我需要下列资料 CPU制造商、型号和序列号 SD卡制造商和序列号 摄像机制造商和其他相关规范 蓝牙相关硬件信息 WiFi相关硬件信息 RAM供应商/模型 显示供应商和模型 在此主题上的任何帮助都将不胜感激 Log.i("ManuFacturer :", Build.MANUFACTURER); Log.i("Board : ", Build.BOARD); Log.i("Display : ", Build.DISPLAY);

我需要在运行我的应用程序的Android设备上获取硬件相关信息。我需要下列资料

  • CPU制造商、型号和序列号
  • SD卡制造商和序列号
  • 摄像机制造商和其他相关规范
  • 蓝牙相关硬件信息
  • WiFi相关硬件信息
  • RAM供应商/模型
  • 显示供应商和模型
在此主题上的任何帮助都将不胜感激

Log.i("ManuFacturer :", Build.MANUFACTURER);
Log.i("Board : ", Build.BOARD);
Log.i("Display : ", Build.DISPLAY);
更多信息请访问from

,android.os中的“Build”类似乎将包含一些您需要的信息

把它当作

string build = Build.VERSION.DEVICE;

您还可以获取实时硬件信息。Build.*参数是在编译Android时设置的,甚至在将其部署到硬件本身之前

您可以通过读取/proc/*“文件”来访问Linux实时硬件信息

你可以用它来做

简单如命令put
cat/proc/cpuinfo


您可以使用adb shell来测试这一点,而不需要root权限。

**此代码为您提供以下信息**

    Log.i("TAG", "SERIAL: " + Build.SERIAL);
    Log.i("TAG","MODEL: " + Build.MODEL);
    Log.i("TAG","ID: " + Build.ID);
    Log.i("TAG","Manufacture: " + Build.MANUFACTURER);
    Log.i("TAG","brand: " + Build.BRAND);
    Log.i("TAG","type: " + Build.TYPE);
    Log.i("TAG","user: " + Build.USER);
    Log.i("TAG","BASE: " + Build.VERSION_CODES.BASE);
    Log.i("TAG","INCREMENTAL " + Build.VERSION.INCREMENTAL);
    Log.i("TAG","SDK  " + Build.VERSION.SDK);
    Log.i("TAG","BOARD: " + Build.BOARD);
    Log.i("TAG","BRAND " + Build.BRAND);
    Log.i("TAG","HOST " + Build.HOST);
    Log.i("TAG","FINGERPRINT: "+Build.FINGERPRINT);
    Log.i("TAG","Version Code: " + Build.VERSION.RELEASE);
  • 设备制造商
  • 烙印
  • 模型
  • 董事会
  • 硬件
  • 序列号
  • 机器人识别码
  • 屏幕分辨率
  • 屏幕密度
  • 引导加载程序
  • 使用者
  • 主人
  • API级别
  • 构建ID
  • 构建时间
  • 指纹

        DisplayMetrics dm = new DisplayMetrics();
        getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
        double x = Math.pow(mWidthPixels / dm.xdpi, 2);
        double y = Math.pow(mHeightPixels / dm.ydpi, 2);
        screenInches = Math.sqrt(x + y);
        rounded = df2.format(screenInches);
        densityDpi = (int) (dm.density * 160f);
    
    
    
    
    Manufacturer_value = Build.MANUFACTURER;
    Brand_value = Build.BRAND;
    Model_value = Build.MODEL;
    Board_value = Build.BOARD;
    Hardware_value = Build.HARDWARE;
    Serial_nO_value = Build.SERIAL;
    UID_value = tManager.getDeviceId();
    android_id = 
    Settings.Secure.getString(getContext().getContentResolver(), 
    Settings.Secure.ANDROID_ID);
    ScreenResolution_value = mHeightPixels + " * " + mWidthPixels + " Pixels";
    screen_size = rounded + " Inches";
    screen_density = String.valueOf(densityDpi) + " dpi";
    BootLoader_value = Build.BOOTLOADER;
    User_value = Build.USER;
    Host_value = Build.HOST;
    Version = Build.VERSION.RELEASE;
    API_level = Build.VERSION.SDK_INT + "";
    Build_ID = Build.ID;
    Build_Time = Build.TIME + "";
    Fingerprint = Build.FINGERPRINT;
    

  • 也许有人需要kotlin的解决方案

    类DeviceInfoHelper构造函数(val上下文:context){
    val模型=设备模型
    val imei=context.imei
    val硬件:字符串?=硬件
    val板:字符串?=板
    val引导加载程序:字符串?=引导加载程序
    val用户:字符串?=用户
    val主机:字符串?=主机
    val版本:字符串?=释放
    val apiLevel=SDK_INT
    val id:字符串?=id
    val时间=时间
    val指纹:字符串?=指纹
    val显示:字符串?=显示
    私有val设备模型
    @SuppressLint(“DefaultLocale”)
    get()=大写(
    if(MODEL.toLowerCase().startsWith(MANUFACTURER.toLowerCase())){
    模型
    }否则{
    “$制造商$型号”
    })
    私人娱乐大写(str:String)=str.apply{
    if(isNotEmpty()){
    first().运行{if(isLowerCase())toUpperCase()}
    }
    }
    private val Context.imei
    @SuppressLint(“HardwareIds”,“MissingPermission”)
    get()=telephonyManager?。运行{
    如果(isReadPhoneStatePermissionGrated()){
    如果(SDK\u INT>=版本\u code.O){
    伊梅
    }否则{
    设备ID
    }
    }else默认\u设备\u ID
    }?:默认\u设备\u ID
    private fun Context.isReadPhoneStatePermissionGrated()=
    ContextCompat.checkSelfPermission(
    这
    Manifest.permission.READ\u PHONE\u状态
    )==已授予PackageManager.PERMISSION\u权限
    private val Context.telephonyManager
    get()=getSystemService(Context.TELEPHONY_服务)作为TelephonyManager?
    }
    
    试试
    getResources().getConfiguration()
    @heshan Perera-您找到这些硬件信息了吗?如果找到,请更新您的答案,以便像我这样的其他人可以从中获得帮助。谢谢。,@Khanna不,我没有找到这些信息。是的,我看到了,但它不符合我的要求。它不向我提供任何信息,如CPU供应商、时钟速度等。是否有办法通过此类访问该信息?我还想知道设备摄像头规格您无法将
    Build.VERSION
    分配给字符串。它给出了编译错误。相反,您可以使用
    Build.VERSION.
    \u某物(例如发行版)并将其分配给字符串。否则,您可以将
    Build.
    \u某物\u(例如显示)分配给字符串变量。不是吗?没有
    设备
    字段,它本身有。但是,由
    Build.DEVICE
    提供的
    字符串
    只包含设备本身的名称,而不包含问题所询问的任何信息。11是什么。用户&12。主持人是怎么回事?