Android:以编程方式获取硬件信息
我需要在运行我的应用程序的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);
- 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);
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。主持人是怎么回事?