1

我正在开发 MDM/EMM 应用程序,这需要我修改/绕过默认的 google 设置向导来配置设备(如果它在我们的服务器上注册)。

我的逻辑如下:-

1 - 在 ROM 中添加 MDM apk 作为系统应用程序
2 - 在 google 设置向导之前启动我的应用程序的活动,以检查设备是否已在我的服务器上注册。
3 - 如果注册我们会配置设备,否则我们会关闭我们的活动并允许谷歌设置向导继续

这种方法面临的问题 -

在实施基于 WiFi 的检查期间,我们遇到了困难——为了检查注册,我们必须强制用户连接到互联网。

但在 WiFi 扫描期间,所有设备上的结果都是空的。设置向导完成后运行相同的 WiFi 扫描代码。

在 Google 设置向导完成之前,是否有一种特殊的方式来扫描 WiFi?

我使用的代码如下: -

    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();

遗憾的是,“mWifiManager.getScanResults()”在 Google 设置向导完成之前运行时会返回一个空列表。在 google 设置向导完成后,此相同的代码将返回所有可用的 WiFi 列表。

如果谷歌设置完成,我们无法配置设备,因此必须在此之前进行配置检查:(

4

0 回答 0