XML Parser запускает AV-оповещение

Я разрабатываю приложение для 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, но столкнулся с той же проблемой.


person Daniel Lerps    schedule 03.06.2013    source источник


Ответы (1)


Я понял, почему AV не понравился мой код. Судя по всему, синтаксический анализ XML не вызвал проблемы...

Чтобы загрузить данные, я использовал AsyncTask и еще не реализовал визуальную обратную связь (ProgessDialog). Одного этого было достаточно для оповещения AV.

person Daniel Lerps    schedule 18.06.2013