Я разрабатываю приложение для Android, которое считывает текущие курсы обмена валют из онлайн-файла XML и анализирует его через w3c DOM. Файл находится в моем хранилище AWS S3.
Синтаксический анализатор работает нормально, и я получаю все оценки, как мне нужно, но мое антивирусное приложение (avast!) продолжает помечать мое приложение как вредоносное ПО (Android:Agent-YI[Trj] сильный>). Когда я комментирую код, и метод, который я использую, просто возвращает true
, AV молчит, и поэтому я сузил его до кода ниже.
Кто-нибудь знает, почему AV не принимает мой код? Единственные разрешения приложений:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
Код парсера:
public static boolean fetchCurrencyRates(String in)
{
boolean success = true;
HashMap<String, Double> onlineRates = new HashMap<String, Double>();
try
{
Document xmlRates = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in);
xmlRates.getDocumentElement().normalize();
NodeList xmlItems = xmlRates.getElementsByTagName("item");
for(int i = 0; i < xmlItems.getLength(); i++)
{
Node n = xmlItems.item(i);
if(n != null && n.getNodeType() == Node.ELEMENT_NODE)
{
Element currency = (Element) n;
String code = currency.getElementsByTagName("title").item(0)
.getTextContent()
.substring(0, 3);
String rate = currency.getElementsByTagName("description").item(0)
.getTextContent()
.split(" ")[3];
Log.i("DEV", code + ": " + rate);
onlineRates.put(code, Double.parseDouble(rate.replaceAll(",", "")));
}
}
}
catch(Exception e)
{
Log.e("DEV", e.getMessage();
success = false;
}
return success && !onlineRates.isEmpty();
}
Я также пытался использовать XmlPullParser
в соответствии с рекомендациями документации Android, но столкнулся с той же проблемой.