如何让Android AP中的设备开启的Web服务被访问到?

新手上路,请多包涵

我在WearOS上写了一个工具,使用NanoHttpd来创建了一个WebServer,当使用普通路由器的WIFI时,同一网段的设备都能通过浏览器正常访问到,而当手表连接到手机的无线热点时,就无法访问了,要怎么才能实现正常访问?

我的步骤是,通过ConnectivityManager获取WIFI状态,当WIFI处于可用状态时,显示当前IP与服务运行的端口号(IP+":"+PORT)。

端口号取得如下:

ServerSocket serverSocket = null;
try {
     serverSocket = new ServerSocket(0);
     int PORT = serverSocket.getLocalPort();
     serverSocket.close();
} catch (IOException e) {
       e.printStackTrace();
}

IP地址取得如下:

ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback(){
        @Override
        public void onAvailable(Network network) {
            super.onAvailable(network);
            NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            if(networkInfo!=null&&(networkInfo.isConnectedOrConnecting()||networkInfo.isAvailable())){
            //此处使用WifiManager取得本机Wifi的IP地址
            String ip = IPUtil.intToIp(wifiManager.getConnectionInfo().getIpAddress())+":"+ Config.getInstance().getPORT();
            }
        }

        @Override
        public void onLosing(Network network, int maxMsToLive) {
            super.onLosing(network, maxMsToLive);
        }

        @Override
        public void onLost(Network network) {
            super.onLost(network);
        }

        @Override
        public void onUnavailable() {
            super.onUnavailable();
        }

        @Override
        public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
            super.onCapabilitiesChanged(network, networkCapabilities);
        }

        @Override
        public void onLinkPropertiesChanged(Network network, LinkProperties linkProperties) {
            super.onLinkPropertiesChanged(network, linkProperties);
        }
    }
阅读 2.6k
1 个回答
✓ 已被采纳新手上路,请多包涵

在一个星期前解决了,刚刚才想起来这个提问。
引起这个问题的原因是机型ROM的问题,测试用手表为TicWatch 2,系统为Ticwear(Android 5.1),正常的Wear OS系统是不存在这个问题的。
解决方案:在设置-权限-【对应的应用】中将移动数据权限打开,此时应用可以使用热点进行访问。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题