我正在开发MDM / EMM应用程序,这要求我修改/规避默认的Google设置向导,以便在设备注册我们的服务器时配置设备。
我的逻辑如下: -
1 - 在ROM中添加MDM apk作为系统应用程序 2 - 在谷歌设置向导之前启动我的应用程序活动,以检查设备是否在我的服务器上注册 3 - 如果已注册,我们会配置设备,否则我们会关闭我们的活动并允许Google设置向导继续
这种方法面临的问题 -
我们在实施基于WiFi的检查时遇到了障碍 - 为了检查注册,我们必须强制用户连接到互联网。
但在WiFi扫描期间,所有设备上的结果都显示为空。 在安装向导完成后运行时,相同的WiFi扫描代码可以正常工作。
在完成Google安装向导之前,是否有一种特殊的方法来扫描WiFi?
代码I使用如下: -
final BroadcastReceiver wifiScanReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent intent) {
if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
List<ScanResult> mScanResults = mWifiManager.getScanResults();
// this returns an empty list when run before the google setup wizard
}
}
};
mWifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
mWifiManager.setWifiEnabled(true);
getApplicationContext().registerReceiver(wifiScanReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mWifiManager.startScan();
可悲的是&#34; mWifiManager.getScanResults()&#34;在Google设置向导完成之前运行时返回一个空列表。在谷歌设置向导完成后,相同的代码返回所有可用的WiFi列表。
如果谷歌设置完成,我们无法配置设备,因此必须在此之前进行配置检查:(