【问题标题】:Missing method in android.net.wifi.WifiManagerandroid.net.wifi.WifiManager 中缺少方法
【发布时间】:2011-06-04 04:39:30
【问题描述】:

androidjavadoc.com 站点上,startScanActive 类中列出了一个方法 WifiManager,它可以执行主动 wi-fi 扫描。最近也是discussed here

尽管如此,当我尝试在 Eclipse 中使用该方法时,却找不到(未定义)。 startScan 是。我尝试使用 Android SDK 附带的所有 android.jar 版本(从 2.3 到 3.1)。

函数存在吗?我怎样才能访问它?

非常感谢

【问题讨论】:

  • 为什么不看官方文档呢?它确实存在,因为 API 级别 1。你能展示你的代码吗?这里:developer.android.com/reference/android/net/wifi/…
  • 我指的是startScanActive方法,不是startScan。代码很简单:wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifi.startScanActive();

标签: android wifi wifimanager


【解决方案1】:

正如我所提到的,请查看official documentation。它不在那里。因此,它不是公共 API 的一部分,您不应该调用它。即使是公开的,也不代表可以调用。

未记录的 API 调用可能会在未来版本中随时消失,恕不另行通知,这将导致您的应用崩溃。

【讨论】:

  • 谢谢,但我的问题还没有回答:它存在吗?如何访问它?对于一个公开的、兼容的应用程序,你是对的。最好不要使用非官方的 API。但你不知道情况。对于跟踪其员工的公司内部应用程序,如果设备是已知的,那么使用该功能绝对是有意义的。主动扫描可以更快地发现 AP。
【解决方案2】:

以下是我自己的解释,基于引用的资源: 该函数不包含在 Android SDK 中。 在源代码中,它被标记为 Javadoc 标记 @hide (source),这导致它被排除在文档之外,但也不会为 SDK 编译。 出于测试目的,可以编译和使用自己的 jar 文件。但在手机本身上,是否存在该方法将取决于供应商。

Similar question. Post on androidjavadoc.com.

【解决方案3】:

当一切都失败时,去根:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3.4_r1/android/net/wifi/WifiManager.java#WifiManager.startScanActive%28%29

它是 WifiManager 自 1.6 以来的公共方法,尽管您说 Eclipse 出于某种奇怪的原因找不到该方法是正确的。

【讨论】:

  • 非常感谢!我分析了Android SDK自带的jar文件,里面肯定没有方法。所以这不是 Eclipse 的错……
  • 如果,正如您在评论中所说,是供内部使用的,您应该可以使用包含的方法自己编译源代码,或者修改 startScan()。这只是一个布尔值的问题:mService.startScan(true);
  • 是的,谢谢。首先我尝试为PC编译android以便编码并希望该方法在手机上可用。
猜你喜欢
  • 2018-12-06
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多