如何解决带有后台工作管理器的 Andorid 10 中的 getSSID
我开发了一个应用程序,它会定期收集有关设备的一些数据并将它们发送到灰色日志。其中一项数据是所连接wifi的名称。
只要应用程序处于打开状态,它就可以正常工作。当应用程序关闭并且只有 Workmanager 正在运行时,我总是将“未知 ssid”作为连接的 Wifi。
有人知道,为什么应用程序只能在应用程序打开时访问wifi名称?或者 WorkManager 如何访问它?
WorkManager 定义为
PeriodicWorkRequest uploadWorkRequest =
new PeriodicWorkRequest.Builder(StatusUpdateWorker.class,15,TimeUnit.MINUTES)
.addTag("monitoring")
.build();
WorkManager
.getInstance(getApplicationContext())
.enqueueUniquePeriodicWork("monitoring",ExistingPeriodicWorkPolicy.REPLACE,uploadWorkRequest);
wifi被访问
WifiManager wifiManager = (WifiManager) applicationContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.getConnectionInfo().getSSID();
在 androidmanifest.xml 中我设置了以下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。