标签: access-point

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

我正在构建一个Android应用程序,需要通过无法访问互联网的WiFi网络进行通信.问题是,即使连接WiFi,当wifi网络上没有连接互联网时,机器人选择使用蜂窝/移动数据.

我已经阅读了许多关于该问题的帖子,其中许多涉及生根设备,但生产应用程序无法实现这一点(根设备不是一种选择).其他解决方案(如我的代码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);
                    }

                } else {
                    //This method was deprecated in API level 23
                    ConnectivityManager.setProcessDefaultNetwork(null);
                    if (barCodeData.getSsid().contains("screenspace")) {

                        ConnectivityManager.setProcessDefaultNetwork(network);
                    }
                }

                connectivityManager.unregisterNetworkCallback(this);
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

networking android wifi access-point iot

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

使用adb shell连接到受密码保护的wifi网络

我有一部Android手机,目标是将手机连接到受密码保护的wifi网络.

到目前为止我知道的步骤:

adb root
adb shell svc wifi enable
Run Code Online (Sandbox Code Playgroud)

好的甜蜜,wifi打开了.现在我需要将手机连接到需要密码的某个无线网络.我希望我可以使用adb shell命令进行连接.

有帮助吗?

我宁愿不将程序下载到设备上

networking android adb wifi access-point

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

主动扫描和被动扫描有什么区别?

mWifiManager.startScanActive()和之间有什么区别mWifiManager.startScan().和
之间有什么区别?active scanpassive scan

android wifi access-point android-wifi

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

连接到特定的访问点android

嗨,我正在尝试使用wifimanager api将我的应用程序连接到特定的访问点.现在我有一个我所在区域的所有接入点的列表,从这个列表中我将它们存储在一个数组中并选择要连接的接入点.但在这个阶段是剂量不连接.有人能帮我吗 .

(这是一个我正在尝试连接的开放式网络.)这是我的代码:

public void WifiConfiguration(){
    try {
        ScanResult networkData = getIntent().getParcelableExtra("networkData");

        WifiManager wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
        String networkPassWord = "";

        WifiConfiguration conf = new WifiConfiguration();
        conf.SSID = "\"" + networkData.SSID + "\"";
        conf.BSSID = "\"" + networkData.BSSID + "\"";
        conf.hiddenSSID = true;
        conf.wepKeys[0] = "\"" + networkPassWord + "\""; 
        conf.wepTxKeyIndex = 0; 
        conf.status = WifiConfiguration.Status.ENABLED;        
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
        conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
        conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
        conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN);

        conf.preSharedKey = "\""+ networkPassWord +"\"";

        //conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

        Log.d(TAG, "Initialising WIFI Manager");

        int id = wifiManager.addNetwork(conf);
        Log.d(TAG, "conf.SSID: "+conf.SSID);
        Log.d(TAG, …
Run Code Online (Sandbox Code Playgroud)

android access-point android-wifi

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

使用Nexus 7创建一个接入点

目的是什么?

使用Android设备创建一个接入点(在我的情况下为Nexus 7).最终目的是将WiFly卡连接到此创建的网络,并在这些设备之间交换数据.

硬件:

  • Android版4.2.2的Nexus 7 植根于ROM CyanogenMod 10.1
  • WiFly卡:Arduino屏蔽与使用Wifi的Zigbee卡相同的布局(产品)

软件:

我知道Android版本4.2.2不允许创建一个访问点(该服务是以编程方式禁用的).这就是为什么我用CyanogenMod的ROM植入我的设备.此ROM启用此服务.

谷歌隐藏了一些类的方法WifiManager.具体来说,该方法setWifiApEnabled.这就是为什么我使用反射来调用下面代码的方法.

源代码很大!专注于方法createAccessPoint().我选择整个源代码来帮助那些想知道我是如何完成这一切的人.

public class TestAccessPoint extends Activity {

static final String TAG = "AP_TEST";
static final String SSID = "\"Awesome Access Point\"";
static final String PSK = "\"helloworld\"";
String numberOfClientsConnected;
String wifiApEnable;
String wifiApState;
WifiConfiguration wifiApConfig;
WifiManager wifiManager;
WifiConfiguration wifiConfiguration;
BroadcastReceiver receiver;
BroadcastReceiver receiverWifiDisabled;
TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.accesspoint_test);
    textView = (TextView) findViewById(R.id.textView); …
Run Code Online (Sandbox Code Playgroud)

android adhoc wifi access-point nexus-7

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

在OSX中将网卡设置为AP模式

我试图从命令行执行OSX的互联网共享,似乎没有命令,所以我试图通过将网卡转为访问点模式手动完成.我似乎无法找到有关如何在Mac上将无线网卡转为AP模式的任何信息.Linux将使用iwconfig(OSX没有),我已经监控了网络共享打开的文件,但到目前为止还没有骰子.

它看起来与wifid有关,但wifid的文档只说"不要直接调用wifid".也使用airportd命令,但它似乎没有让卡进入AP模式.必须有办法,因为互联网共享创建了一个接入点.

TL; DR:有谁知道如何从命令行打开Internet共享?

macos command-line network-programming access-point

7
推荐指数
0
解决办法
183
查看次数

ESP:操作系统自动登录/接受消息,并重定向到公共 WIFI 门户访问点等页面

例子:

我不知道你怎么称呼这个功能,所以我试着解释一下。例如,当您将手机连接到公共 WiFi 热点/接入点时,您会收到来自操作系统的消息,要求您接受条款/条件或您需要登录才能使用连接。当您单击此消息时,它会打开/a 浏览器并启动登录页面。

他们怎么做到的?这是 https 功能吗?


更新:(1)

它被称为俘虏门户:

强制门户技术强制网络上的 HTTP 客户端在正常使用 Internet 之前查看特殊网页(通常用于身份验证)。强制门户将 Web 浏览器转变为身份验证设备。这是通过拦截大多数数据包来完成的,无论地址或端口如何,直到用户打开浏览器并尝试访问网络。届时,浏览器将被重定向到可能需要身份验证和/或付款的网页,或者只是显示可接受的使用政策并要求用户同意。强制门户用于许多 Wi-Fi 热点,也可用于控制有线访问(例如公寓、酒店房间、商务中心、“开放式”以太网插孔)。


情况:

我想用 ESP(ESP32/ESP8266)做同样的事情,因为我开发了一个可以通过 WiFi 配置的设备。当用户连接到设备并且不必先打开浏览器、输入 IP 地址等时,这将是非常用户友好的。只需一条消息,用户可以点击它,就会启动一个主页。

在 AP 模式下,我打开了 DNS 并将所有内容重定向到主页,但这不是最佳解决方案(有时也不起作用)。为了让您了解我在做什么,这里有一些代码,我的库的一部分:

bool suStartAccessPointNetwork( String  sSSIDNetworkName, String   sSSIDPassword,
                                IPAddress sStaticIpAddress,
                                uint16_t iDnsPort = 0,
                                uint8_t iTries = 20, 
                                uint16_t iDelay = 500 
                              )
{ 
  WiFi.disconnect();
  suSetNetworkAccessPointMode();
  delay( 1000 );
  WiFi.softAPConfig( sStaticIpAddress,
                       sStaticIpAddress,
                       IPAddress( 255, 255, 255, 0 )
                     ); 

  SU_WIFI_AP_ESTABLISHED = WiFi.softAP( sSSIDNetworkName.c_str(), sSSIDPassword.c_str() );

  if( iDnsPort > 0 ) …
Run Code Online (Sandbox Code Playgroud)

c++ wifi access-point arduino-esp8266

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

如何在Windows中从WLAN捕获信标帧?

我在Windows上使用本机Wifi api以编程方式执行WLAN的一些任务.但是,我的问题是它暴露了有限的功能集.我想访问提供接入点负载,通话时间等的信标帧的某些字段.哪些工具可用于执行此操作?

提前致谢!

windows frames wlan access-point

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

如何使用node.js获取周围的无线接入点列表?

环境

  • 乌班图
  • 节点.js v0.6.12

目标

我希望能够获取可用 AP/网络名称 (SSID) 的列表

我可能想选择一个特定的 SSID。

我的最终目标是能够检查 wifi 信号强度和质量,以便在完全失去连接之前强制重新关联到另一个 AP。

如何使用 node.js 创建一个循环来检索和更新周围 AP 列表?

node.js实现这一目标是一个不错的选择吗?

如何从 AP 获取信息,即信号强度和质量?

wifi node.js access-point wpa

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

在Windows 10上设置移动热点/ SoftAp

正如我在Windows 10中所了解的那样,已删除了从控制台设置托管网络的功能。相反,他们将其替换为称为“ Windows Mobile Hotspot Service”的服务。

英特尔他们自行确认此 https://www.intel.com/content/www/us/en/support/articles/000023257/network-and-io/wireless-networking.html

我发现可以通过Windows 10中的设置启用它,但是有人知道是否可以通过编程方式完成吗?是来自CMD还是来自COM通话等?

windows wifi access-point windows-10 hotspot

5
推荐指数
0
解决办法
260
查看次数