Android Управление - Как передать токен регистрации при использовании регистрации NF C - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь подготовить свое устройство с помощью NF C и следую руководству, в котором указаны все шаги вместе с параметрами по умолчанию, ссылка следующая:

https://developers.google.com/android/work/play/emm-api/prov-devices#nfc_method

Я могу отправить необходимые настройки, параметры настройки и настройки Wi-Fi, которые мое устройство (устройство без инициализации) может успешно распознать, но мне не удалось отправить токен регистрации, так как он не упомянут в do c как отправить.

Используя предоставленные конфигурации, устройство сначала пытается подключиться к WiFi и загрузить приложение Policy из google play, но не смог прочитать токен регистрации и запросить его предоставление вручную.

Пожалуйста, дайте мне знать, что я делаю неправильно. спасибо:)

код:

    @Override
    public NdefMessage createNdefMessage(NfcEvent event) {
        if (mProvisioningValues == null) {
            return null;
        }
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        Properties properties = new Properties();
        // Store all the values into the Properties object
        for (Map.Entry<String, String> e : mProvisioningValues.entrySet()) {
            if (!TextUtils.isEmpty(e.getValue())) {
                String value;
                if (e.getKey().equals(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_SSID)) {
                    // Make sure to surround SSID with double quotes
                    value = e.getValue();
                    if (!value.startsWith("\"") || !value.endsWith("\"")) {
                        value = "\"" + value + "\"";
                    }
                } else //noinspection deprecation
                    if (e.getKey().equals(
                            DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME)
                            && Build.VERSION.SDK_INT >= 23) {
                        continue;
                    } else {
                        value = e.getValue();
                    }
                properties.put(e.getKey(), value);
            }
        }
        // Make sure to put local time in the properties. This is necessary on some devices to
        // reliably download the device owner APK from an HTTPS connection.
        if (!properties.contains(DevicePolicyManager.EXTRA_PROVISIONING_LOCAL_TIME)) {
            properties.put(DevicePolicyManager.EXTRA_PROVISIONING_LOCAL_TIME,
                    String.valueOf(System.currentTimeMillis()));
        }

        // make sure download link is available
        if (!properties.contains(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION)) {
            properties.put(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION,
                    "https://play.google.com/managed/downloadManagingApp?identifier=setup");
        }

        // make sure to set check sum
        if (!properties.contains(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM)) {
            properties.put(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM,
                    "LKJLK3J4KL5J34L5J3J5LJ34K5JL3KJ5");
        }

        // adding enrolment token
        Properties extraBundleProperties = new Properties();
        // make sure to set check sum
//        if (!extraBundleProperties.contains(DevicePolicyManager.ACTION_PROVISION_MANAGED_DEVICE)) {
//            extraBundleProperties.put(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE,
//                    "ioewurouowueoru");
//        }
//        properties.put(DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE, extraBundleProperties.toString());
        properties.put(DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE, "{\"android.app.action.PROVISION_MANAGED_DEVICE\":\"ioewurouowueoru\"}");

        try {
            properties.store(stream, getString(R.string.nfc_comment));
            NdefRecord record = NdefRecord.createMime(
                    DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, stream.toByteArray());
            return new NdefMessage(new NdefRecord[]{record});
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...