Я не могу получить свой ip на устройстве Android, хотя в манифесте установлено интернет-разрешение - PullRequest
2 голосов
/ 11 января 2012

Я использую eclipse + android SDK в Ubuntu и запускаю тестовый сервер активности с использованием сокетов.

Мой манифест имеет разрешение на доступ в Интернет

<uses-permission android:name="INTERNET"/>

Но когда я ищу свой IPна устройстве, используя:

    // gets the ip address of your device
private String getLocalIpAddress() 
{
    try 
    {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) 
        {
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) 
            {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); }
            }
        }
    } 
    catch (SocketException ex) 
    {
        Log.e("ServerActivity", ex.toString());
    }
    return null;
}

Я получаю исключение на Logcat:

Java.net.SocketException: Permission denied

Метка: MyActivity, но у меня есть разрешение на доступ к Интернету в манифесте.

Еслия пытаюсь поставить IP вручную, когда я использую сокеты, я получаю также исключение с TAG: System.err

Некоторые идеи о проблеме ??

Заранее спасибо.

1 Ответ

2 голосов
/ 11 января 2012

Я думаю, что вы должны написать разрешение в манифесте xml:

<uses-permission android:name="android.permission.INTERNET"/>

вместо только "ИНТЕРНЕТ". Попробуйте на всякий случай.

...