小编Chi*_*uva的帖子

无法在 Android 12 中使用 onCapativityChanged 获取 WIFI SSID

描述

我无法使用 Android-12 中的类获取 WIFI onCapabilitiesChangedSSID ConnectivityManager.NetworkCallback。在 Android-12 中,getConnectionInfo 已弃用。因此,正如 android 文档所建议的那样,我正在尝试WifiInfo使用onCapabilitiesChanged.

像这样,

@Override
public void onCapabilitiesChanged(@NonNull Network network, @NonNull NetworkCapabilities networkCapabilities) {
        super.onCapabilitiesChanged(network, networkCapabilities);
        WifiInfo wifiInfo = (WifiInfo) networkCapabilities.getTransportInfo();
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我打印该WifiInfo对象时。它将打印SSID:<unknown ssid>getHiddenSSID返回 true。

意想不到的行为是,

Android-12设备连接1个WIFI(例如ABC)

  • 当我尝试使用 获取 WIFI SSID 时getConnectionInfo。它返回 SSID: ABC 和 getHiddenSSID: false
  • 但是,对于同一网络,当我尝试使用 获取 WIFI SSID 时 onCapabilitiesChanged,它返回 SSID: <unknown ssid> 和 getHiddenSSID : true

注意:提供位置许可。

android ssid wifi android-wifi android-12

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

将协程与片段一起使用的最佳实践是什么?

描述
我有包含多个片段的 TabLayout。我想在片段更改/滑动时将片段数据保存到 Room DB 中,并在返回片段时向用户显示数据。

目前正在使用
目前,我正在使用协程GlobalScope.launch来保存到一个片段中,并且它工作正常。

问题
1. 在片段更改时使用带有片段的协程将数据保存到数据库的最佳实践是什么?
2.GlobalScope.launch在片段更改上使用是一个好习惯吗?
3.如果GlobalScope.launch不好用那我们可以用什么代替呢?

android android-fragments kotlin kotlin-coroutines

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