public static String getSSID(Context ctx) {
WifiManager wifiManager =
(WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
return ssid.replaceAll("\"", "");
这是应为开发的应用没有打开地理位置权限,打开权限:设置-> 隐私->权限管理->位置信息 找到你开发的应用 打开位置权限即可。
文章目录问题描述手动解决代码判断
获取
网络信息的工具类
拥有了ACCESS_WIFI_STATE、ACCESS_NETWORK_STATE、ACCESS_FINE_LOCATION等权限后,
获取
当前链接Wifi的
Ssi
d依然返“
unknown
ssi
d”
检查手机是否打开了位置信息,即手机是否允许定位。一般在下拉菜单栏中有个"位置信息"开关。
可以使用Locati...
最近遇到一个奇怪的bug,部分手机上
获取
wifi的名字,通过WifiManager.getConnectionInfo().get
SSI
D()为"
unknown
ssi
d",调试查看
SSI
D为"",这导致接下来的一系列逻辑都出现了问题。目前发现RROS(Remix)的ROM会出现这个问题。特此记录解决方法。
首先实例化WifiManager和ConnectivityManager
mWifiMa...
复工第一天,今天早上客户反映某品牌手机
Android
10以上无法
获取
wifi名称,我寻思不就定位权限嘛,一看权限都有的,就是
获取
不到wifi名称。
原因: 不知道
解决方案:写了两个方法,如果方法1无法
获取
,就调用方法2。
权限列表:(如何授权请自行搜索)
<uses-permi
ssi
on
android
:name="
android
.permi
ssi
on.ACCESS_COARSE_LOC...
一、需求描述
最近做一个需求,需要在做某个业务之前,判断
Android
设备是否连接上指定名称的WiFi。如果连接上了指定名称的WiFi才可以继续某个业务;否则就跳到设置去连接该指定名称的WiFi。
因此,我需要
获取
当前
Android
设备连接的WiFi名称,来进行业务逻辑判断。
二、实现方法
2.1 通过WifiManager.getConnectionInfo().get
SSI
D()
通过WifiManager.getConnectionInfo().get
SSI
D(),代码如下所示:
privat
前一篇文章介绍了 wifi的
ssi
d
获取
方式,但是在8.0版本手机上 运行 发现
获取
到的名称 展示为 <
unknown
ssi
d>,原来是版本原因,
8.0以后
SSI
D这样拿
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE...
项目场景:
随着
Android
版本更新,
Android
9 及以上版本市场占有率越来越高,发现我们应用在高版本上出现,
获取
到 wifi 名称为 的问题。这里提供一种通用的方式,测试了大部分机型,都可以正确
获取
到 wifi
ssi
d。
问题描述:
之前在
Android
6 及以下版本运行正常的程序,在
Android
9上发现异常,最后查到原因是
获取
的 wifi
ssi
d 为 。以前直接使用如下代码
获取
的
ssi
d:
public String getWifi
SSI
D(Context conte
Android
平台提供了连接WiFi网络的API,可以根据WiFi的
SSI
D和密码自动进行连接。具体实现步骤如下:
1. 首先,在
Android
Manifest.xml文件中添加以下权限:
```xml
<uses-permi
ssi
on
android
:name="
android
.permi
ssi
on.ACCESS_WIFI_STATE"/>
<uses-permi
ssi
on
android
:name="
android
.permi
ssi
on.CHANGE_WIFI_STATE"/>
<uses-permi
ssi
on
android
:name="
android
.permi
ssi
on.ACCESS_NETWORK_STATE"/>
<uses-permi
ssi
on
android
:name="
android
.permi
ssi
on.ACCESS_FINE_LOCATION"/>
<uses-permi
ssi
on
android
:name="
android
.permi
ssi
on.ACCESS_COARSE_LOCATION"/>
这些权限用于
获取
WiFi状态、更改WiFi状态、访问网络状态、以及
获取
位置信息等。
2. 在代码中,使用以下方法来连接WiFi网络:
```java
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration config = new WifiConfiguration();
config.
SSI
D = "\"" +
ssi
d + "\"";
config.preSharedKey = "\"" + password + "\"";
int networkId = wifiManager.addNetwork(config);
wifiManager.disconnect();
wifiManager.enableNetwork(networkId, true);
wifiManager.reconnect();
其中,`
ssi
d`和`password`分别表示WiFi的名称和密码。首先使用`addNetwork(config)`方法添加WiFi网络配置,然后断开当前连接,最后启用指定的WiFi网络并重新连接。
需要注意的是,上述代码需要在
Android
Manifest.xml文件中的`<application>`标签内部的`<activity>`标签外部添加`
android
:permi
ssi
on="
android
.permi
ssi
on.CHANGE_WIFI_STATE"`权限限制。
此外,还需要在设备上开启位置信息功能,以便能够
获取
到WiFi网络列表。
以上就是根据WiFi的
SSI
D和密码自动连接网络的简要步骤。实际应用中,还需要处理可能出现的异常情况,并做适当的错误处理。