Articles of wifi

如何在Android中获取wifi热点的IP?

正如标题所说……我试图在配置为热点时能够获得wifi的IP。 理想情况下,我想find适用于所有手机的东西。 当然,在从AP获取信息时,WifiManager是无用的。 幸运的是,通过这样做,我已经能够获得所有接口的IP: public String getLocalIpAddress() { try { for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress()) { Log.d(“IPs”, inetAddress.getHostAddress() ); } } } } catch (SocketException ex) { Log.e(LOG_TAG, ex.toString()); } return null; } 这段代码将打印所有接口的所有IP(包括Wifi热点)。 主要问题是我找不到识别WiFi接口的方法。 这是一个问题,因为有些手机有多个接口(WiMax等)。 […]

Android ESC / POS通过WiFi打印

我想编写一个Android应用程序,它将按照以下步骤进行操作,我希望您帮助我find适合他们的API以加快这一过程。 我打算使用的打印机支持ESC / POS协议。 使用WiFi查找附近的所有打印机。 它将选择一台打印机可能是第一台。 它会将文本文档发送到打印机进行打印,并查看是否已成功打印。 我发现了一些像这样的 API。 我相信我的问题与这篇文章类似

android wifiManager.addNetwork返回-1

我正在编写一个Android应用程序,它将连接到特定的WPA访问点,连接后,它将发出一个http调用。 它不会保存网络配置。 我已经阅读了连接到wifi网络上几乎所有关于堆栈溢出的post,但找不到对我有用的答案。 这是我用来连接的代码.. WifiConfiguration wc = new WifiConfiguration(); wc.allowedAuthAlgorithms.clear(); wc.allowedGroupCiphers.clear(); wc.allowedPairwiseCiphers.clear(); wc.allowedProtocols.clear(); wc.allowedKeyManagement.clear(); wc.SSID = “\””.concat(“”).concat(“\””); wc.preSharedKey = “\””.concat(“”).concat(“\””); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); // For WPA2 wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA); // For WPA wc.priority = 0; //wc.hiddenSSID = true; wc.status = WifiConfiguration.Status.ENABLED; // connect to and enable the connection WifiManager wifiManager = (WifiManager) […]

检测Android上的wifi IP地址?

我需要确定Android设备是否连接到Wifi,如果是,请获取其Wifi IP地址。 我知道如何使用ConnectivityManager来确定活动网络是否是Wifi网络,我知道如何使用java.net.NetworkInterface迭代可用的网络接口并获取其IP地址。 我不知道该怎么做是确定哪个IP地址属于Wifi网络,如果find多个地址。 任何建议? 谢谢。

WiFi密码:它是如何存储的以及在哪里?

任何人都知道如何以及在哪里将WiFi密码存储在Android设备上。 我不打算破解它,而是考虑保存和恢复任何“容器”保存它。 任何Android API框架支持保存wifi密码,然后检索wifi密码?

Android – 检测Wifi是否需要浏览器登录

我的大学有一个开放的无线接入点,但它要求您在允许您使用网络之前输入您的电子邮件。 我的问题是,Wifi是愚蠢的,因为它似乎放弃了我的连接并迫使我每10分钟再次输入我的电子邮件。 我想创建自己的应用程序,我可以使用它自动为我执行此步骤,但我似乎找不到任何文档,以便检测Wifi访问点是否具有浏览器登录页面。 在Android中是否有办法获取此信息,或者仅仅是为了查看我与某些内容的连接是否始终重定向到1.1.1.1?

等到在android上连接wifi

我有一个试图连接到wifi网络的小程序。 如果它是第一次连接到某个网络,它启用设备上的wifi它加载设备wifi以选择和添加连接密码。 直到我添加密码才能连接程序不应该完成。 我怎样才能添加一些东西等待,直到我从连接的wifi管理器获取? 我尝试睡眠,但它冻结了应用程序,我没有得到wifipopup菜单连接? 还有其他方法吗?

检测并处理需要登录的wifi

我在一个Android应用程序中使用HttpClient 4.1,并试图让我的应用程序的API请求被其中一个“你需要登录或支付wifi”屏幕截获。 我想popup一个允许用户登录的webview。 我一直试图拦截httpClient中的重定向,但我没有成功。 这就是我目前正在尝试的: this.client = new DefaultHttpClient(connectionManager, params); ((DefaultHttpClient) this.client).setRedirectStrategy(new DefaultRedirectStrategy() { public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) { boolean isRedirect = Boolean.FALSE; try { isRedirect = super.isRedirected(request, response, context); } catch (ProtocolException e) { Log.e(TAG, “Failed to run isRedirected”, e); } if (!isRedirect) { int responseCode = response.getStatusLine().getStatusCode(); if (responseCode […]

Wifi位置三角测量

我需要了解Wifi三角测量基本上是如何工作的。 场景如上图所示。 为了实现wifi三角测量,我需要至少3个Wifi热点及其位置。 设置: 1.为简单起见,假设我有1平方公里乘1平方公里的区域,我在这个区域有3个Wifi热点。 坐标系如下:方形区域的1个角为(0,0,0),对角线最远的角为坐标(1,1,1)。 所有位置确定都是相对于该坐标系统单独进行的(为简单起见,我不需要全局xyz坐标)。 在此范围内,我在(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)处有3个wifi热点。 我们有一个人有一个能够接收wifi信号并计算位置(x,y,z)信号强度的设备。 该设备可以是手机,平板电脑等。 问题:当你现在有以下输入时,动态计算人的位置(x,y,z): 1.从每个wifi热点接收的信号的信号强度 2.先前存储在variables或数据库中的wifi热点的坐标。 第一个问题:如何根据输入计算位置? 我假设信号强度与路由器的距离成正比,但具体的关系是什么? Skyhook如何准确地做到这一点? 第二个问题:我认为上述投入已足够。 还有什么需要吗? 谢谢!

强制Android使用没有互联网的Wifi网络

我正在构建一个Android应用程序,需要通过无法访问互联网的WiFi网络进行通信。 问题是即使连接WiFi,当wifi网络上没有连接互联网时,机器人选择使用蜂窝/移动数据。 我已经阅读了很多关于该问题的post,其中许多涉及生根设备,但生产应用程序无法实现这一点(生根设备不是一种选择)。 其他解决方案(如我的代码bellow)建议使用bindProcessToNetwork() ,它在我的Sony Z2上完美运行,但在我测试过的其他设备上没有(所有运行6.0.1) private void bindToNetwork() { final ConnectivityManager connectivityManager = (ConnectivityManager) mActivity.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest.Builder builder; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { builder = new NetworkRequest.Builder(); //set the transport type do WIFI builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI); connectivityManager.requestNetwork(builder.build(), new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { connectivityManager.bindProcessToNetwork(null); if (barCodeData.getSsid().contains(“screenspace”)) { connectivityManager.bindProcessToNetwork(network); } […]