标签: wificonfiguration

Android WifiManager.addNetwork()返回-1

我正在编写一个Android应用程序,它将连接到特定的WPA访问点,连接后,它将发出一个http调用.它不会保存网络配置.我已经阅读了连接到wifi网络上几乎所有关于堆栈溢出的帖子,但找不到对我有用的答案.这是我用来连接的代码..

    WifiConfiguration wc = new WifiConfiguration();
    wc.allowedAuthAlgorithms.clear();
    wc.allowedGroupCiphers.clear();
    wc.allowedPairwiseCiphers.clear();
    wc.allowedProtocols.clear();
    wc.allowedKeyManagement.clear();
    wc.SSID = "\"".concat("<ssid>").concat("\"");
    wc.preSharedKey = "\"".concat("<password>").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) getSystemService(this.WIFI_SERVICE);
    int netId = wifiManager.addNetwork(wc);
    boolean wifiEnabled = wifiManager.enableNetwork(netId, true);
    wifiManager.setWifiEnabled(true);
    Log.d("opener", "addNetwork returned " + netId);
    if (netId > 0) {
        wifiId = netId;
    }
Run Code Online (Sandbox Code Playgroud)

但是netId总是-1.我在两部不同的手机上试过它(ICS:HTC Rezound和GingerBread:摩托罗拉DroidX).两者显示完全相同的结果.我究竟做错了什么? …

android wifi wifimanager android-wifi wificonfiguration

19
推荐指数
5
解决办法
1万
查看次数

在Android 6.x(Marshmallow)中以编程方式设置静态IP和网关

任何人都可以告诉我如何在Android 6中以编程方式设置静态IP和网关?

我在这里这里读过.

Settings.System不再工作了,goolgle说WIFI_STATIC_IP在API级别17中已弃用,WifiManger而是使用.不幸的是我无法找到关于它的任何事情WifiMangerWifiConfiguration类.

android wifimanager android-wifi wificonfiguration

15
推荐指数
1
解决办法
5980
查看次数

如何获得所有wifi接入点的BSSID?

我需要获得所有AP的BSSID(MAC).请在下面找到代码块.

    List<WifiConfiguration> test =  wifiManager.getConfiguredNetworks();
    for(int k=0;k<test.size();k++){ 
        Log.d("acheck", "test BSSID = "+test.get(k).BSSID);         
        Log.d("acheck", "test BSSID = "+test.get(k).BSSID);    
   }
Run Code Online (Sandbox Code Playgroud)

但是上面的代码块正确返回SSID但BSSID为null.我想用用户定义的SSID连接到最强的接入点.是否有任何API方法可以获得具有用户定义的SSID的最佳信号强度的AP.(在我的情况下,有许多SSID具有单个SSID且具有多个AP可用.)

android wifi android-wifi wificonfiguration

13
推荐指数
2
解决办法
2万
查看次数

从ScanResult构建WifiConfiguration或:解释ScanResult的'capabilities'字符串

你们中的任何一个Android专家都知道任何开源代码来创建WifiConfiguration一个给定的ScanResult?这会有所帮助.事实上,我的捕获(2012年4月中旬)Android源代码的第483行(/ 624)WifiConfiguration.java是一个注释掉的构造函数,旨在做到这一点,一个大TODO想知道它是否值得实现(见下面的引用).我的动议是的,我能听到第二个吗?

我看到的主要挑战(实际上是这个问题的主要内容)是如何解释ScanResult.configuration字符串.

  1. 我能想到刚的事情,比如简单的列表[WPA2-PSK-CCMP],[WPS]等等?
  2. 这些字符串是在文档或代码库中的某处枚举的吗?
  3. 我应该知道设备/制造商/ AP特定的字符串吗?

WifiConfiguration.java(可能的编辑):

/** 
 * Construct a WifiConfiguration from a scanned network
 * @param scannedAP the scan result used to construct the config entry
 * TODO: figure out whether this is a useful way to construct a new entry.
 *   
public WifiConfiguration(ScanResult scannedAP) {
    networkId = -1; 
    SSID = scannedAP.SSID;
    BSSID = scannedAP.BSSID;
    // aaaah screw it I'm tired/lazy
}   
*/
Run Code Online (Sandbox Code Playgroud)

https://code.google.com/p/android/issues/detail?id=60523

android android-wifi wificonfiguration

11
推荐指数
1
解决办法
3278
查看次数

从App下载"mobileconfig"文件

我的组织正在创建一个应用程序,它将在移动配置文件中列出某些wifi热点,这样当用户在范围内时,用户无需为这些wifi写入密码.我知道这可以使用.mobileconfig文件来完成.但我有严重的疑虑.

以下是有关该应用的几个问题:

  1. 可以.mobileconfig以编程方式创建文件.我找不到如何以编程方式创建这个链接的链接(不使用iPCU).

  2. Apple会允许创建.mobileconfig文件的应用程序并要求用户下载并安装它,以便更改wifi设置吗?

  3. 是否.mobileconfig只允许用户通过Safari或Mail 下载此文件?有没有办法直接从应用程序打开此文件到设置屏幕?

提前致谢.:)

iphone objective-c wifi ios wificonfiguration

11
推荐指数
1
解决办法
4万
查看次数

在Raspbian上通过USB启用RTL8188CUS的监控模式

我正在尝试使用覆盆子pi型号b +(或任何覆盆子pi)上的RTL8188CUS芯片组启用USB wifi加密狗的监控模式.

$ lsusb
Bus 001 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
$ sudo iwconfig wlan0 mode monitor
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Invalid argument.
Run Code Online (Sandbox Code Playgroud)

根据github / raspberrypi / linux/issues/369,您需要启用内核分发包含但未编译的rtlwifi/rtl8192cu内核模块.这需要对一些文件进行微小修改,如下面"STEP 2"中所述.

该线程中提到的USB问题已从4.1.6+开始解决,因此rtlwifi驱动程序应该可以工作.

在新鲜的覆盆子pi(模型B +)上重新创建的步骤......

第0步:将现有模块和内核更新到最新版本

$ sudo apt-get update
$ sudo rpi-update
$ uname -a
Linux raspberrypi 4.1.7+ #815 PREEMPT Thu Sep 17 17:59:24 BST 2015 armv6l GNU/Linux
Run Code Online (Sandbox Code Playgroud)

第1步:获取raspbian内核源代码并添加缺少的依赖项

$ git clone --depth=1 …
Run Code Online (Sandbox Code Playgroud)

linux linux-kernel wifi wificonfiguration raspbian

10
推荐指数
1
解决办法
1万
查看次数

如何在android中使用ssid和密码创建自定义WPA热点?

我使用以下代码创建Wifi-hotspot配置.我能够创建Hotspot配置并能够启用它.但我已经为WPA-PSK提供了配置,但它始终作为OPEN网络.

public boolean setHotSpot(String SSID,String passWord){
Method[] mMethods = mWifiManager.getClass().getDeclaredMethods();

    for(Method mMethod: mMethods){

        if(mMethod.getName().equals("setWifiApEnabled")) {
            WifiConfiguration netConfig = new WifiConfiguration();
             netConfig.SSID = SSID ;
                netConfig.preSharedKey = passWord;
                netConfig.hiddenSSID = true;
                netConfig.status = WifiConfiguration.Status.ENABLED;
                netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
                netConfig.allowedKeyManagement.set(4);
                netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
                netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
                netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

            try {              
                mMethod.invoke(mWifiManager, netConfig,true);
                mWifiManager.saveConfiguration();
                return true;

            } catch (Exception e) {
                e.printStackTrace();
                CommonUtil.log(TAG,"Exception : "+e.getLocalizedMessage());
            }
        }
    }
return false; 
Run Code Online (Sandbox Code Playgroud)

}

运行此应用程序后,Hotspot已启用.请查看下面的图片.

在此输入图像描述

如何在Android应用程序中设置WPA_PSK wifi配置?

根据以下答案,我修改了下面的代码.

public boolean setHotSpot(String SSID, String passWord) {
    boolean apstatus;
    WifiConfiguration netConfig …
Run Code Online (Sandbox Code Playgroud)

android wifimanager android-wifi personal-hotspot wificonfiguration

8
推荐指数
1
解决办法
2617
查看次数

hostapd调试级别配置

据我所知,到目前为止,hostapd是一个能够进行一些网络配置的二进制文件.

但是,要启用hostapd调试级别,是否需要重建二进制文件?我可以采取其他方法而不是重建一个新方法吗?

wifi wificonfiguration hostapd

7
推荐指数
1
解决办法
2万
查看次数

如何从Android WifiConfiguration条目获得WiFi安全性(NONE,WEP,WPA,WPA2)?

我需要从WifiConfiguration入口获取安全类型.可能吗?

String getSecurityType(WifiConfiguration conf) {
}
Run Code Online (Sandbox Code Playgroud)

返回值 "NONE", "WEP", "WPA", "WPA2"

对于那些认为这是一个重复问题的人:我想从WiFiConfiguration对象而不是从ScanResult对象获取信息.这是不一样的!

android android-wifi wificonfiguration

6
推荐指数
1
解决办法
2541
查看次数

是否可以在没有Apple的"无线附件配置"功能的情况下配置WiFi设备?

我想使用iOS应用程序配置非Apple WiFi设备.连接将通过由同一设备创建的WiFi进行.

  1. 最好是使用Apple的WAC(无线附件配置)功能还是可以在没有它的情况下完成它?(那么不需要MFi许可证)

  2. 如果可以不使用WAC:哪个更省时,更昂贵,开发没有WAC的定制解决方案或获得MFi许可的过程(和成本)?

  3. 如果不使用WAC,还有其他缺点吗?

需要注意的是,虽然配置应用程序还必须通过蜂窝网络访问互联网以获取配置数据.关于此事的问题可以在这里找到:iOS应用程序在通过WiFi进行"无线附件配置"时是否可以使用蜂窝互联网连接?

你有什么想法,经验?

configuration cellular-network wifi ios wificonfiguration

6
推荐指数
1
解决办法
4751
查看次数

如何切换到普通的wifi模式到接入点模式ESP8266

我正在使用ESP8266-12 wifi模块访问我的家庭wifi网络来控制灯光.为了上传新固件(OTA:Over the Air)更新,我想使用ESP8266的热点AccessPoint,因为在更改了我的wifi网络的密码后,我将无法做到这一点.这是我的Arduino代码:

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <ArduinoOTA.h>
#include <ESP8266WebServer.h>

//ssid and password of your wifi network
const char* ssid = "wifi_ssid";
const char* password = "wifi_password";

//ssid and password to connect to local hotspot of ESP8266
const char *esp_ssid = "your_desired_ssid";
const char *esp_password = "your_desired_password";

IPAddress ip(192, 168, 1, xx); // where xx is the desired IP Address
IPAddress gateway(192, 168, 1, 254); // set gateway to match your wifi network
IPAddress subnet(255, 255, 255, 0); …
Run Code Online (Sandbox Code Playgroud)

arduino wifi access-point wificonfiguration esp8266

3
推荐指数
1
解决办法
2万
查看次数

如何以编程方式在Android中更改Portable Hotspot的SSID?

我想改变Hotspot SSID!有人可以帮忙吗?

Android以编程方式打开/关闭WiFi HotSpot,这是我切换便携式热点的代码:

import android.content.*;import android.net.wifi.*;
import java.lang.reflect.*;

public class ApManager {

//check whether wifi hotspot on or off
public static boolean isApOn(Context context) {
WifiManager wifimanager = (WifiManager)  context.getSystemService(context.WIFI_SERVICE);     
try {
    Method method = wifimanager.getClass().getDeclaredMethod("isWifiApEnabled");
    method.setAccessible(true);
    return (Boolean) method.invoke(wifimanager);
}
catch (Throwable ignored) {}
return false;
}

// toggle wifi hotspot on or off
public static boolean configApState(Context context) {
WifiManager wifimanager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
WifiConfiguration wificonfiguration = null;
try {  
    // if WiFi is on, …
Run Code Online (Sandbox Code Playgroud)

android wifimanager android-wifi wificonfiguration

2
推荐指数
1
解决办法
8170
查看次数

如何在Linux中使用python更改wifi接口的IP地址?

我想使用python更改wifi接口的IP地址。我该怎么做?您不必告诉我代码。请指出我。我去追捕 谢谢!

python wifi wificonfiguration

1
推荐指数
1
解决办法
5406
查看次数