प्रतिबिंब काम नहीं कर रहा है जब मैं एमुलेटर में की कोशिश की है एपीआई 19.
तो मैं "नाचो Coloma" और "केविन अनुदान"
String osName="";
Field[] fields = Build.VERSION_CODES.class.getFields();
for (Field field : fields) {
String fieldName = field.getName();
int fieldValue = -1;
try {
fieldValue = field.getInt(new Object());
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
}
if (fieldValue == Build.VERSION.SDK_INT) {
osName=fieldName; break;
}
}
if(osName.isEmpty()) {
String[] mapper = new String[]{
"ANDROID BASE", "ANDROID BASE 1.1", "CUPCAKE", "DONUT",
"ECLAIR", "ECLAIR_0_1", "ECLAIR_MR1", "FROYO",
"GINGERBREAD", "GINGERBREAD_MR1", "HONEYCOMB", "HONEYCOMB_MR1",
"HONEYCOMB_MR2", "ICE_CREAM_SANDWICH", "ICE_CREAM_SANDWICH_MR1", "JELLY_BEAN",
"JELLY_BEAN", "JELLY_BEAN", "KITKAT", "KITKAT",
"LOLLIPOOP", "LOLLIPOOP_MR1", "MARSHMALLOW", "NOUGAT",
"NOUGAT", "OREO", "OREO", "ANDROID P"};
int index = Build.VERSION.SDK_INT - 1;
osName = index < mapper.length ? mapper[index] : "UNKNOWN_VERSION";
}
स्रोत
2018-02-27 16:25:30
के लिए देख रहे हैं, यह नामों की अपनी स्थिर सरणी का उपयोग करने और इसे इंडेक्स द्वारा देखने के लिए आसान और सुरक्षित होगा। – CommonsWare
एक स्थिर सरणी एक ऐप के लिए आदर्श हो सकती है जिसे प्रत्येक रिलीज के लिए नियमित रूप से अपडेट किया जा सकता है, लेकिन उन परियोजनाओं के लिए जिन्हें एंड्रॉइड की कई रिलीज के लिए अपडेट नहीं किया जा सकता है, यह अभी भी एक पसंदीदा समाधान हो सकता है। –