Всем привет! Думаю тут есть джава программисты, сам я пока что в терминах да и в коде не силен..
У системного класса TelephonyManager есть метод getSimCountryIso(), так вот обычно инициализация менеджера и вызов метода занимает всего две строчки
public String getCountry() {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
return tm.getSimCountryIso();
}
Но когда я пытаюсь вызвать метод динамически у меня получается очень большой код, в основном там одни кэтчи
public String getCountry(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String country = "";
try {
Method getSimCountryIso = tm.getClass().getMethod("getSimCountryIso");
country = (String) getSimCountryIso.invoke(context);
} catch (SecurityException e) {
} catch (NoSuchMethodException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
}
return country;
}
Вот такое чудо, собственно не гламурно не кошерно выглядит такой код, а без кэтчей приложение попросту не запускается.
Есть решение как использовать динамический вызов метода избегая такой каши в коде?
Changed: Антон (04.10.2014 / 08:11)