Версия для графического процессора, Renderer, Vendor в Android
Я хочу найти GPU Vendor, его версию и рендер. Я использовал этот код:-
renderer = GLES10.glGetString(GL10.GL_RENDERER);
vendor = GLES10.glGetString(GL10.GL_VENDOR);
version = GLES10.glGetString(GL10.GL_VERSION);
работает на Android 4.3 и выше, но когда я запустил этот код на Android 2.3.6, он возвращает ноль.
Тем не менее, проверьте следующий код проверки GPUVersion, который возвращает "2.0" с 2.3.6:-
final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
GPUVersion = configurationInfo.getGlEsVersion();
но все же вышеупомянутые 3 строки возвращают ноль.
Есть ли способ получить вышеуказанную информацию для всех устройств.
1 ответ
Иногда единственный способ получить значение в разных версиях Android - это разделить методы в зависимости от используемой версии. Вы можете сделать что-то вроде:
public static String getGlVersion(Context ctx) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
ActivityManager am = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE);
ConfigurationInfo configurationInfo = am.getDeviceConfigurationInfo();
return configurationInfo.getGlEsVersion();
} else {
return GLES10.glGetString(GLES10.GL_VERSION);
}
}
Имейте в виду, однако, что это может работать не для всех версий, и вам может потребоваться разделить метод на большее количество случаев или изменить минимальный SDK_INT, используемый для сравнения (я подозреваю, например, что для Honeycomb ему уже нужен первый метод, но не проверял это).