问题描述
我开发了一个应用程序,它会定期收集有关设备的一些数据并将它们发送到灰色日志。其中一项数据是所连接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 (将#修改为@)