Поскольку я ссылаюсь на старый пост, т.е. Android: программно получить информацию об оборудовании, но не найти любой соответствующий ответ, а также попытался найти решение в Google, но все напрасно. Пожалуйста, помогите мне идти вперед
как мы можем программно получить информацию об оборудовании устройства Android?
Ответы (3)
Недавно я настроил такую вещь ... После регистрации телефон отправляет в веб-сервис (с модификацией) все полезные параметры аппаратного / программного обеспечения, которые я смог найти ... Вот соответствующая часть кода, который я использовал:
boolean isRooted = findBinary("su");
PackageInfo pInfo;
String version = "unknown";
try {
pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
version = pInfo.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
myService.sendPhoneDetails(
android.os.Build.VERSION.SDK_INT,
android.os.Build.VERSION.RELEASE,
android.os.Build.BRAND,
android.os.Build.MANUFACTURER,
android.os.Build.MODEL,
android.os.Build.SERIAL,
isRooted,
version,
new Callback<Model>() {
@Override
public void success(Model model, Response response) {
// ....
}
@Override
public void failure(RetrofitError error) {
// ....
}
}
);
private static boolean findBinary(String binaryName) {
boolean found = false;
if (!found) {
String[] places = { "/sbin/", "/system/bin/", "/system/xbin/",
"/data/local/xbin/", "/data/local/bin/",
"/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/" };
for (String where : places) {
if (new File(where + binaryName).exists()) {
found = true;
break;
}
}
}
return found;
}
Обратите внимание, что все телефоны не предоставляют доступ к одной и той же информации, например, номер телефона редко доступен, но они выглядят довольно часто.
Надеюсь, это поможет...
Используя класс Build, вы можете получить всю эту информацию.
чтобы записать эту информацию в тост (например), вы можете использовать:
Toast.makeText(getApplicationContext(), ""+Build.HARDWARE+Build.DEVICE+Build.MANUFACTURER+ "etc..", Toast.LENGTH_SHORT).show();
для получения дополнительной информации о классе сборки перейдите по ссылке выше.
надеюсь, это поможет.
Например, вы можете прочитать /proc/meminfo
и /proc/cpuinfo
. Они не требуют root-доступа и содержат информацию о памяти/процессоре.
Подробности о том, как их читать, можно найти здесь: Любой способ запускать команды оболочки на Android программно?