android - 是否可以在后台服务中获取wifi ssid?

标签 android wifi foreground-service ssid

我正在尝试在后台获取 wifi ssid。
虽然它在前台,但效果很好。
但是当它进入后台时,在我的前台服务中,它返回。
当然是获得Location权限的。
是否可以在该服务中获取 ssid?

    ConnectivityManager connManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    if (ConnectivityManager.TYPE_WIFI == netInfo.getType ()) {
        WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        Log.d("checkWifi", "checkWifi" + wifiInfo.getSSID());
    }
<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"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

最佳答案

在 Android 10+ 上需要 ACCESS_BACKGROUND_LOCATION 权限

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

谢谢@CommonsWare!

关于android - 是否可以在后台服务中获取wifi ssid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65939416/

相关文章:

java - Android:无法使用 null 启动服务:java.lang.NullPointerException

android - 检查 Android OREO 中的前台服务是否正在运行

android - Git 实验分支还是单独的实验存储库?

android - 如何更改我的时间选择器和日期选择器的文本颜色?

java - Android HttpURLConnection 仅适用于 3g,不适用于 wlan

python - Gopro Hero 3 - 通过 wifi 传输视频

linux - 如何使用 bash 知道连接到每个 SSID 的客户端数量?

java - Forerground 服务初始化后无法更新通知文本;上下文问题

安卓 USB 设备 : how to determine "vendor name" and "device name" from vendorID and DeviceID?

安卓 GooglePlus API 错误