Android - getHostName() возвращает имя приложения?

В приложении для Android, над которым я работаю, я просто пытаюсь получить имена хостов, соответствующие IP-адресам.

private class hostLookUp extends AsyncTask<InetAddress, Integer, String>{
    protected String doInBackground (InetAddress...ip){
        int count = ip.length;
        for (int i = 0; i < count; i++){
            String hostName = ip[i].getHostName();
            if (isCancelled()) return "ERROR";
            else return hostName;
        }
        return null;
    }
}

Код для меня важен

String hostName = ip[i].getHostName();

Единственная причина, по которой он реализован с помощью AsyncTask, заключается в том, что Android не позволяет мне вызывать эту функцию в основном потоке. Предыдущий код используется в подпрограмме, которая включает в себя следующий код

for (int i = 0; i < connectionCount; i++){
    statusList[i][0] = addressList[i].toString()  + "(" + new hostLookUp().execute(addressList[i]) + ")";;
    temp = connectionStatus (statusList[i][1]);
    statusList[i][1] = temp;
}

На этом этапе в подпрограмме connectionCount - это число IP-адресов, хранящихся в массиве InetAddress. В этом фрагменте кода у меня есть массив String, в котором ip-адрес будет преобразован в строку вместе с именем хоста в первом элементе массива. В конце, позиция [0] будет содержать IP-адреса и имена хостов для всех InetAddresses в исходном массиве. Посмотрев документацию, InetAdress.toString() должен предоставить имя хоста в любом случае, но он этого не делает. Что в итоге происходит, я получаю

"/0.0.0.0(com.example.Test.MainActivity$hostLookUp@42244450)"

Где 0.0.0.0 - это любой IP-адрес, а 42244450 - это просто число, которое постоянно меняется. Я просто хочу, чтобы появилось правильное имя хоста, почему вместо этого отображается имя приложения?

0 ответов

Другие вопросы по тегам