2012-05-21 91 views

回答

4

從Android CTS的(兼容性測試套件)OpenGlEsVersionTest.java

private static int getVersionFromPackageManager(Context context) { 
    PackageManager packageManager = context.getPackageManager(); 
    FeatureInfo[] featureInfos = packageManager.getSystemAvailableFeatures(); 
    if (featureInfos != null && featureInfos.length > 0) { 
     for (FeatureInfo featureInfo : featureInfos) { 
      // Null feature name means this feature is the open gl es version feature. 
      if (featureInfo.name == null) { 
       if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { 
        return getMajorVersion(featureInfo.reqGlEsVersion); 
       } else { 
        return 1; // Lack of property means OpenGL ES version 1 
       } 
      } 
     } 
    } 
    return 1; 
} 

/** @see FeatureInfo#getGlEsVersion() */ 
private static int getMajorVersion(int glEsVersion) { 
    return ((glEsVersion & 0xffff0000) >> 16); 
} 

它實際上提供了一些其他方面也和試驗驗證他們都返回相同的結果。