我一直在尝试使用两种方法按名称以编程方式连接到开放的 wifi(连接门户)。
我使用了 op1,但它只能在 80% 的情况下工作。
操作1:
public static void connectToWifi(Context context, String networkSSID) {
WifiConfiguration conf = new WifiConfiguration();
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for (WifiConfiguration i : list) {
Log.d(TAG + " |connectToWifi()", "i.SSID=> " + i.SSID);
if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
Log.d(TAG + " |connectToWifi()", "IF > i.SSID=> " + i.SSID);
break;
}else {Log.e(TAG + " |connectToWifi()", "ELSE - FAILED …Run Code Online (Sandbox Code Playgroud) 我试图通过提供SSID并使用WifiManager配置传递来连接到wifi网络.
基于此线程解决方案: 如何以编程方式连接到Android中的特定Wi-Fi网络?
调用重新连接方法.但没有任何事情发生(没有连接).
是什么版本的Android版本(6.0.1)?如果是,那么如何在Android 6上以编程方式执行网络连接?
我需要让我的应用程序自动连接到特定SSID的密码.我正在尝试这个,但这就是我得到的:
错误:
非静态方法addNetwork(WifiConfiguration)不能从静态上下文中引用
错误:
非静态方法enableNetwork(int,boolean)不能从静态上下文中引用
final WifiManager wifiManager = (WifiManager) MainActivity.this.getSystemService(Context.WIFI_SERVICE);
final WifiConfiguration config = new WifiConfiguration();
config.SSID = "\"xxx\"";
config.preSharedKey = "\"123\"";
if (!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);
int networkId = WifiManager.addNetwork(config);
WifiManager.enableNetwork(networkId, true);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用应用程序连接到新的 wifi 网络,而不是使用以下代码的 android wifi 设置,但似乎相关的 android sdk 类只允许您连接到已存储在 android 中的网络,而不是任何新网络。我的想法正确吗?
这是我的代码
清单 XML:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="unitedspark.testapp" >
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".WiFiConnect"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<receiver android:name=".WiFiChangeReciever" >
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGE" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
</manifest>
Run Code Online (Sandbox Code Playgroud)
活动 XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".WiFiConnect"
android:id="@+id/WiFiConnectLayout">
<TextView
android:id="@+id/Connect"
android:layout_width="wrap_content"
android:layout_height="wrap_content" …Run Code Online (Sandbox Code Playgroud) 我想制作一个检测wifi网络的简单应用程序,在选择网络后,它会启动(连接)到所选网络.
我已经为检测阶段编写了代码但是如何在onItemClick()中连接到所选网络.请建议代码.
所以我一直在为自己找出这些东西时遇到一些麻烦,而且我对Android很新,所以我真的很感激一些帮助.
我已经在SO上看了这些答案:如何以编程方式连接Android中的特定Wi-Fi网络?
我看到你必须配置网络,手动输入密码,并将其添加到已配置的网络列表等.
我想知道在用户已经配置/保存多个wifi的情况下会做什么,并选择特定的一个以编程方式连接?这是否意味着它们已经出现在getConfiguredNetworks()方法调用中?如果是这样,那么如何执行.enableNetwork(int netId,boolean disableOthers)?
作为旁注,这两个函数都是WifiManager类的一部分.希望这一切都有意义!
我只是想知道是否可以在应用程序中制作自定义 Wifi 界面,用户可以在其中输入他的 Wifi 连接,而不是启动导致 Android Wifi 设置的意图。我正在研究这个,但找不到有关在应用程序中进行自定义 wifi 设置的任何有用的输入。
startActivity( new Intent( Settings.ACTION_WIFI_SETTINGS ) );
Run Code Online (Sandbox Code Playgroud)
这不是想要的...我想创建自己的 wifi 设置界面,用户可以在其中设置 wifi 配置文件并让手机从应用程序内连接到网络。
感谢您的任何想法和帮助
android ×7
android-wifi ×3
java ×3
wifi ×3
wifimanager ×3
connect ×1
onitemclick ×1
performance ×1