高通平台WIFI--获取本地P2P0的IP 地址

当使用高通平台进行WiFi Direct(P2P)连接时,通常通过onConnectionInfoAvailable()只能获取到对端设备的P2P0 IP。要获取本地P2P0的IP地址,必须确保P2P连接已成功建立。本文提供了一种解决方案,详细介绍了如何在连接成功后获取本地P2P0的IP地址。
摘要由CSDN通过智能技术生成

 由于onConnectionInfoAvailable(WifiP2pInfo info) 这个方法中,建立P2P连接后,info只能获取到对方的P2P0地址

所以可以通过如下方法获取P2P0的IPAddress.

注意,必须P2P连接后成功才能调用此方法,否则无法读取到P2P0的IP 地址

如下是代码的解决思路:

    @RequiresApi(api = Build.VERSION_CODES.N)
    public static String getP2PIPAddress() throws Exception {
        String P2PIPAddress = "";
        java.util.Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
        StringBuilder sb = new StringBuilder();
        ArrayList<String> tmpMacList=new ArrayList<>();
        while(en.hasMoreElements()){
            NetworkInterface iface = en.nextElement();
            List<InterfaceAddress> addrs = iface.getInterfaceAddresses();
            for(InterfaceAddress addr : addrs) {
                InetAddress ip = addr.getAddress();
                if(ip.toString().contains("192.168."))
                {
                    P2PIPAddress = ip.toString().substring(1);
                    Log.d("InetAddress","P2P0 IP === "+ P2PIPAddress);
                }
            }
        }
        return P2PIPAddress;
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专业开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值