java - 在android中获取私有IP
问题描述
我试图在这里获取连接的 wifi 的本地 ip,我正在使用什么
final WifiManager manager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
但这不会转换为WifiManager
. 我在最新的 android ide 中得到一条红线:
Suspicious cast to WifiManager for a WIFI_SERVICE: expected WifiManager
因此我无法访问
final DhcpInfo dhcp = manager.getDhcpInfo();
我正在使用 api 28,所以这有什么问题。我搜索了所有我发现的解决方案都使用了我在这里显示的相同代码。
解决方案
根据 Android 官方文档,您向我们展示的源代码片段是正确的。
如果代码给出错误,我知道两种可能的解释:
您可能导入了错误的
WifiManager
类。检查您是否已导入android.net.wifi.WifiManager
而不是其他版本。这可能是您的 Android IDE 中的问题。如果您重新启动/刷新 IDE,请查看错误是否消失。
错误信息
Suspicious cast to WifiManager for a WIFI_SERVICE: expected WifiManager
意味着此问题已被 Android 特定检查而不是(纯)Java 编译错误所发现。如果这是一个 Java 编译错误,则该转换将被描述为不正确,不可疑。
从 Java 的角度来看,这是java.lang.Object
对某个WifiManager
类的强制转换。这在编译时是合法的。
错误消息来自一些特定于 Android 的检查。它在说“嘿哇,这将在运行时给出一个类转换异常”。问题是:它为什么这么认为?
推荐阅读
- c++ - CHtmlEditCtrl::PrintDocument() - 靠近页面底部的行间距错误?
- blazor - Blazor(服务器端)和 Okta
- powerbi - Split data into categories in the same row in Power BI
- python - 日期时间未以指定格式显示
- javascript - window.onbeforeunload 不正确地允许导航
- python - 功能无法使用用户输入?
- apache-flink - 使用 Flink LocalEnvironment 进行生产
- c++ - 试图创建一个体面的基本刽子手游戏。猜到的字母不会取代短语中的字母
- python - Python-np.random.choice
- excel - VB 脚本——Excel“Activeworkbook”被打乱。如何声明显式工作簿?