首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法获取本地inetAddress

无法获取本地inetAddress
EN

Stack Overflow用户
提问于 2015-10-19 01:20:59
回答 1查看 78关注 0票数 1

我正在尝试在我的安卓手机上获取wlan0界面的本地InetAddress

代码语言:javascript
复制
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import java.net.InetAddress;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        InetAddress ia = Utils.getLocalInetIP4Address("wlan0");

        setContentView(R.layout.activity_main);
    }
}

这是Utils.java的内容

代码语言:javascript
复制
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.InterfaceAddress;
import java.net.SocketException;
import java.util.Enumeration;

public class Utils {
    public static InetAddress getLocalInetIP4Address(String nw_if) {
        try {
            Enumeration<NetworkInterface> interfs = NetworkInterface.getNetworkInterfaces();

            for(NetworkInterface interf; interfs.hasMoreElements();) {
            interf = interfs.nextElement();

                if(interf.getName().equals(nw_if)) {
                    Enumeration<InetAddress> inetaddrs = interf.getInetAddresses(); //Get all IPs (IPv4 or IPv6) associated to this interface in an InetAddress object
                    for(InetAddress addr; inetaddrs.hasMoreElements();) {
                        addr = inetaddrs.nextElement();
                        if(addr instanceof Inet4Address) {
                            return addr;
                        }
                    }
                }
            }
        } catch(SocketException ex) {
            System.out.println(ex.getMessage());
        }
        return null;
    }
}

当我启动应用程序时,它没有启动,在屏幕上我得到的信息是"the application start in a strang way“(或者类似的英文)。

以下是我得到的错误:

代码语言:javascript
复制
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{example.antonio.broadcast_adhoc/example.antonio.broadcast_adhoc.MainActivity}: java.lang.NullPointerException
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread.access$600(ActivityThread.java:156)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:153)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5297)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:  Caused by: java.lang.NullPointerException
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at example.antonio.broadcast_adhoc.Utils.getLocalInetIP4Address(Utils.java:29)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at example.antonio.broadcast_adhoc.MainActivity.onCreate(MainActivity.java:12)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:5122)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread.access$600(ActivityThread.java:156) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:153) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5297) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
10-18 19:28:09.371 14961-14961/example.antonio.broadcast_adhoc E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
EN

回答 1

Stack Overflow用户

发布于 2015-10-19 02:13:43

您忽略了AndroidManifest.xml所需的权限

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33200905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档