Wifip2p networkinfo 中的“isRoaming”是啥意思?

Posted

技术标签:

【中文标题】Wifip2p networkinfo 中的“isRoaming”是啥意思?【英文标题】:what does "isRoaming" in the Wifip2p networkinfo mean?Wifip2p networkinfo 中的“isRoaming”是什么意思? 【发布时间】:2015-07-02 09:14:16 【问题描述】:

Wifip2p网络信息中isRoaming是什么意思? [http://developer.android.com/reference/android/net/NetworkInfo.html#isRoaming()] 它告诉使用该网络上的数据可能会产生额外费用?它指的是哪些数据以及使用将如何导致额外费用?

【问题讨论】:

【参考方案1】:

好吧,如果您在您所在的国家/地区之外并且您打开手机,它将自动建立与漫游合作伙伴网络的 GSM 连接 -> TelephonyManager.isNetworkRoaming() 将返回 true。如果禁用数据漫游或启用“仅使用 2g”NetworkInfo.isRoaming() 将返回 false,因为没有建立数据连接。如果您在 NetworkInfo.isRoaming() 上切换数据服务,也会返回 true,因为现在(GSM 和数据连接)都已建立并处于漫游模式。

因此,打开/关闭数据漫游将使NetworkInfo.isRoaming() return true/false

UPD:当用户想知道用户在 2G/3G 网络上是否启用了漫游数据时使用。

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
//[edit: check for null]
if(ni != null) 
  //...Here check if this is connected and available...
  if (ni.isRoaming())
  
      // user has enabled data even while he is on Roaming!!
  

【讨论】:

【参考方案2】:

由于他专门询问了 Wifi P2P 的正确答案,因此这将是一个未使用的字段,因为漫游仅适用于蜂窝网络,不适用于 Wifi P2P 网络信息。

关于 wifi P2P,您应该使用的 networkinfo 的唯一字段是:isConnected(之后您通常会从 wifip2pmanager 请求连接信息)。

【讨论】:

以上是关于Wifip2p networkinfo 中的“isRoaming”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Android_NetworkInfo以及判断手机是否联网

ConnectivityManager.getActiveNetworkInfo() / NetworkInfo 在 API 29 中已弃用。有啥替代方案?

检查android wifip2p连接是不是成功?

Android WifiP2p - 当发现的设备不可用时收到通知

Android Things 中的 WiFi P2P 网络

android 怎么判断是不是wifi