在 Android 上检测 wifi IP 地址?

2024-01-01

我需要确定Android设备是否连接到Wifi,如果是,则获取其Wifi IP地址。

我知道如何使用 ConnectivityManager 来确定活动网络是否是 Wifi 网络,并且我知道如何使用 java.net.NetworkInterface 迭代可用的网络接口并获取其 IP 地址。

我不知道如何确定哪个 IP 地址属于 Wifi 网络(如果找到多个地址)。有什么建议吗?

Thanks.


public String getIpAddr() {
   WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
   WifiInfo wifiInfo = wifiManager.getConnectionInfo();
   int ip = wifiInfo.getIpAddress();

   String ipString = String.format(
   "%d.%d.%d.%d",
   (ip & 0xff),
   (ip >> 8 & 0xff),
   (ip >> 16 & 0xff),
   (ip >> 24 & 0xff));

   return ipString;
}

请注意: 需要补充一下android.permission.INTERNET and android.permission.ACCESS_WIFI_STATE在你的AndroidManifest.xml as <user-permission/>访问代码。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 上检测 wifi IP 地址? 的相关文章

  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Android第一次动画不流畅

    我正在尝试一个动画将 imageView 从屏幕底部滑动到屏幕中心 但是当我第一次执行此动画时 它不平滑 但当第二次执行动画时 它是正常且平滑的 我几乎尝试了所有方法 但无法解决我的问题 这是我的动画文件
  • Android 应用程序在后台运行时保存数据

    目前我正在开发 xmmp 客户端 当应用程序位于前台时 该客户端工作得很好 但由于事实上 当应用程序处于后台时 我在 Application 类中保存了大量数据 复杂的 ArrayList 字符串和布尔值作为公共静态 每个字段都被垃圾收集
  • 与 Admob 广告单元 ID 混淆

    我跟着tutorial https developers google com admob android quick start在我的应用程序中创建广告横幅 到目前为止 这有效 我可以看到测试广告 但是 本教程指示我在两个不同的位置使用两
  • Android SoundPool 堆限制

    我正在使用 SoundPool 加载多个声音剪辑并播放它们 据我所知 它的功能 100 正确 但在 load 调用期间 我的日志中充斥着以下内容 06 09 11 30 26 110 ERROR AudioCache 23363 Heap
  • 如何将安卓手机从睡眠状态唤醒?

    如何以编程方式将 Android 手机从睡眠状态唤醒 挂起至内存 我不想获取任何唤醒锁 这意味着手机在禁用 CPU 的情况下进入 真正的 睡眠状态 我想我可以使用某种RTC 实时时钟 机制 有人有例子吗 Thanks 为了让Activity
  • 如何从 SQLite 获取记录总数

    我正在尝试从 Sqlite DB 获取行的总数 以下是我想要做的代码片段 我不知道我在这里做错了什么 public static int getTotalCount Context context Cursor c null try c g
  • 共同的偏好不断消失

    我正在使用共享首选项来存储我的应用程序的登录凭据 除了一个用户之外 一切正常 一段时间后 共享偏好似乎会以某种方式重置或清除 我已针对该用户调整了我的应用程序 使其不再清除他的共享偏好设置 这样我就可以确定这不是我的应用程序的错 但即使在这
  • (Ionic 2)尝试回退到 Cordova-lib 执行时发生错误:TypeError:无法读取未定义的属性“then”

    Edit 使用 ionic 2 时会发生这种情况 我知道它还不稳定 但我认为可能有一些解决方案 因为其他人似乎没有遇到这个问题 Edit end 由于某种原因 我在尝试使用 ionic build android 和 ionic build
  • 如果我们使用后退按钮退出,为什么 Android 应用程序会重新启动?

    按住主页按钮并返回应用程序时 应用程序不会重新启动 为什么使用后退按钮会重新启动 如果我们使用后退按钮退出 有什么方法可以解决在不重新启动的情况下获取应用程序的问题吗 请帮忙 当您按下Home按钮 应用程序将暂停并保存当前状态 最后应用程序
  • 在 Google Analytics 中跟踪应用程序版本

    我正在使用谷歌分析模块 https marketplace appcelerator com apps 5081 2014113336 https marketplace appcelerator com apps 5081 2014113
  • 已经使用 AsyncTask doInBackground 但新数据未显示

    我使用 AsyncTask 创建一个聊天室来接收消息 因此它总是检查即将到来的消息并将其显示给客户端 但代码似乎无法按我希望的方式工作 在客户端只显示所有旧数据 新数据不显示 因为当我尝试从服务器发送消息时 新数据没有显示在客户端中 我对这
  • 如何在 sqlite 中将 2 列合并为新列

    我有一个包含 3 列的表 我必须将 2 列中的值按降序排列到一列中 A B C z 1 2 f 5 7 s 9 5 使用此示例 输出会将 B 列和 C 列中的值放入其中 如下所示 A B s 9 f 7 f 5 s 5 z 2 z 1 我当
  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 在 Android 上按下电源按钮时,如何防止先调用 onDestroy() 再调用 onCreate()

    我正在记录每个 onCreate 和 onDestroy 调用 我发现 一旦我单击 Android 上的电源按钮 以及模拟器上的电源按钮 我的活动中就会拨打电话 gt onDestroy gt onCreate 这会杀死我的游戏 然后立即从
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在

随机推荐

  • 如何组合两个正则表达式条件?

    我正在尝试在 JavaScript 中编写一个正则表达式 对两个条件 A 和 B 进行 AND 运算 A B 显然不是一个有效的解决方案 我的两个正则表达式是 so 不与两个正则表达式我怎样才能做到这一点 有一般规则吗 有时 没有明显的方法
  • 在 C++ 中将整数移至最接近的可被 4 整除的位置

    我想将一个整数移动到 C 中最接近的 可被 4 整除 的数字 但如果该数字当前可被 4 整除 则不会 这是我的最佳尝试 但我确信这不是最优的 offset offset 3 offset 3 1 offset 肯定有一种快速的方法来做到这一
  • info.plist 中添加的 NSLocationAlwaysUsageDescription 字符串未显示在权限弹出窗口 ios 中

  • 对于实时图形编程,C++ 的最佳替代方案是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Heroku 错误消息未检测到 Cedar 支持的应用程序

    因此 我在使用 heroku 和这个 Rails 教程时遇到了更多问题 我正在制作的 Rails 教程让我开发了一个超级基本的应用程序 然后他们让我创建一个比特桶帐户 之后他们让我创建了一个 Heroku 帐户 现在他们要求我推动我的起源大
  • Android Studio 2.x - 永远构建符号...

    我的 Android Studio 有问题 将 AS 更新到 2 2 后 需要很长 约 30 分钟 的时间来处理 表明它正在 构建符号 该项目相当大 并且包含 NDK 组件 使用 gradle 构建速度非常快 BUILD SUCCESSFU
  • 如何重构 XSD 以便解组不会返回 JAXBElement

    我有以下架构
  • 我可以使用 JavaScript fetch() 在 DOM 中插入内联 svg 吗?

    我有一个使用 XMLHttpRequest 在 DOM 中插入内联 svg 的函数 我想知道是否可以使用 fetch 执行相同的函数 其功能是 el document querySelector foo var request new XM
  • 使用 Boost 类型特征进行条件编译

    我有一个模板 我想根据参数的类型有条件地编译它 我只关心区分 普通旧数据 POD 即整数等或类 结构 我在 Windows 上使用 c VS2008 template
  • Testflight 无法识别新设备

    我正在尝试将用户添加到 Testflight 构建中 因此 我转到开发人员门户并添加他们的信息 UDID 和设备名称 并将他们的设备添加到配置文件中 重新下载并将其应用到项目中 然后我存档到 ipa 文件 然而 当我将 ipa 上传到 Te
  • 导轨捆绑清洁

    更新捆绑包后 您将拥有一些可能已过时的 gem 因为已安装该 gem 的较新版本 下没有这样的命令bundle可执行的 即bundle clean 如何摆脱这些过时的宝石 这是减少我的 Rails 应用程序中的 slug 大小的尝试 如果您
  • Kibana v 7.9.2 小时_分钟_秒的精确格式

    我跟着 and https www elastic co guide en elasticsearch reference current mapping date format html https www elastic co guid
  • ApplicationContext 事件从未被抛出

    我正在努力拥有ContextEventListener在所有 ContextXXXEvent 上 我为每个事件类型创建了一个侦听器 如下所示 ContextRefreshedEvent是一个例子 Component public class
  • 让一个函数“返回”超级函数?

    给出的是以下代码 function two return success function one two return fail 如果您通过调用函数 one 来测试代码 您将始终得到 失败 问题是 如何通过仅调用函数二 来在函数一 中返回
  • Textview 环绕 View [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图让我的水平布局充分利用可用的空间 在显示活动的信息中 我有一个 事实框 后面跟着一大框文本 我希望信息框向右浮动 类似于下图 使
  • 无需输入类名即可获取枚举?

    我注意到在 C 中 当我有一个 Enum 时 请说 class ClassObject public static Enum EventType Click Jump Etc 当我必须访问它时 我必须浏览它的主类 它非常冗长 例如 Clas
  • 将子菜单添加到 Visual Studio 项目项节点

    右键单击文件项 Visual Studio 解决方案资源管理器时如何添加菜单和子菜单项 我有一个菜单和三个子菜单项 当我右键单击解决方案资源管理器中的文件时 将显示这些菜单项 如下图所示 我尝试使用 vsct 按钮 但它将显示在上下文菜单上
  • 无法安装 MySQL-python

    我想在 python 2 7 虚拟环境中安装 MySQL python 但出现以下错误 Installing collected packages MySQL python Running setup py install for MySQ
  • 安卓:应用程序未安装

    这里是新手 我用Godot游戏引擎制作了我的第一个游戏并成功导出到android 复制到我的手机上 它安装并运行良好 几个小时后 我做了一些更改并再次导出 再次复制了 apk 但现在当我尝试安装它时 它没有完成安装 我多次尝试更改导出设置
  • 在 Android 上检测 wifi IP 地址?

    我需要确定Android设备是否连接到Wifi 如果是 则获取其Wifi IP地址 我知道如何使用 ConnectivityManager 来确定活动网络是否是 Wifi 网络 并且我知道如何使用 java net NetworkInter