Обнаружение устройства MDNS/Zeroconf работает на Android 5.1.1, но не на Android 7

Я обнаруживаю устройство в частной сети без доступа в Интернет. Единственными устройствами в сети являются устройство, которое я обнаруживаю, и мобильные устройства или ПК, на которых установлено приложение, над которым я сейчас работаю. Эти слова просто прекрасны на Android 5.1.1, но на 7 я не получаю ответа, как будто ничего не нахожу. Вот код, который я использую для обнаружения устройства. Я использую тип _telnet._tcp., а подключаемый модуль Cordova, который я использую здесь, — cordova-plugin-zeroconf< /а>

find(type) {// javascript
    return new Promise((resolve, reject) => {
        cordova.plugins.zeroconf.watch(type, "local.", (result) => {
            var action = result.action;
            var service = result.service;

            if (action == 'added') {
                console.debug('service added', service);
            }
            else if (action == 'resolved') {
                console.debug('service resolved', service);
                resolve({ status: "resolved", service: service });
            }
            else {
                console.debug('service removed', service);
                resolve({ status: "removed", service: service });
            }
        }, (error) => {
            reject(error);
        });
    });
}

Первоначально я думал, что это может быть из-за разрешений, поэтому я добавил это в MainActivity в проекте Android Cordova. И я вижу, что он регистрирует «имеет разрешение».

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//java
    Log.d(TAG, "version 23 or more");
    if (checkSelfPermission(Manifest.permission.ACCESS_WIFI_STATE) == PackageManager.PERMISSION_GRANTED &&
        checkSelfPermission(Manifest.permission.CHANGE_WIFI_MULTICAST_STATE) == PackageManager.PERMISSION_GRANTED &&
        checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
    Log.d(TAG, "has permission");
}
else {
    Log.d(TAG, "no permission");
    requestPermissions(new String[] { Manifest.permission.ACCESS_WIFI_STATE,
            Manifest.permission.CHANGE_WIFI_MULTICAST_STATE, 
            Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0);
    }
}

person Jason Crosby    schedule 22.03.2018    source источник
comment
Я установил стороннее приложение для браузера на планшет Android 7 и смог увидеть устройство, которое пытаюсь найти.   -  person Jason Crosby    schedule 27.03.2018
comment
Я пробовал это на 2 устройствах Android с 7.0 и на одном с 7.1.1, и все они не находят это устройство, к которому мне нужно подключиться. Были ли внесены какие-либо изменения в Android, начиная с 7.0, из-за которых это не работает?   -  person Jason Crosby    schedule 02.04.2018


Ответы (1)