Подключение к принтеру, подключение по локальной сети - PullRequest
0 голосов
/ 23 января 2020

Я новичок в android и работаю над печатными модулями уже несколько дней. Я разрабатываю приложение для отправки квитанции на печать на принтеры, подключенные к моей локальной сети по своему выбору. Мне интересно посмотреть, сколько принтеров подключено к моей локальной сети, если я нажму на них, подробности должны быть где-то показаны.

То, что я пытался добиться этого, реализовано на примере https://github.com/Bhagvati/NSD-Network-service-discovery-Android/blob/master/NSD/src/com/example/android/nsd/NSDMainActivity.java

Я попытался подключить свое устройство с помощью

        String HTTPSERVICE_TYPE="_http.tcp"
        NsdServiceInfo serviceInfo = new NsdServiceInfo();
        serviceInfo.setPort(port);
        serviceInfo.setServiceName(mServiceName);
        serviceInfo.setServiceType(HTTPSERVICE_TYPE);
        serviceInfo.setHost(ip);
        mNsdManager.registerService(serviceInfo,
                NsdManager.PROTOCOL_DNS_SD, mRegistrationListener);
//and to discover printer on my local network i am using "_ipp.tcp"
 public NsdServiceInfo discoverServices() {
        mNsdManager.discoverServices(IPPSERVICE_TYPE,
                NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener);
        return mService;
    }

Но поиск принтера с использованием IPPSERVICE_TYPE = "_ ipp.tcp." Не работает. хотя это написано в документации, чтобы найти принтер, мы можем использовать этот протокол. если я использую HTTPService_Type, он показывает камеру, подключенную к моей локальной сети, но две камеры подключены, только это указывает на то, что подключена одна камера.

            @Override
            public void onServiceFound(NsdServiceInfo service) {
                if (service.getServiceType().contains("luxul")) {
                    mNsdManager.resolveService(service, mResolveListener);
                    Log.e(TAG, "service info :: " + service + "..");
                    mService = service;
                    appendResultsText("service luxul info :: " + service );
                }
                else if (service.getServiceType().contains(HTTPSERVICE_TYPE)) {
                    mNsdManager.resolveService(service, mResolveListener);
                    Log.e(TAG, "service info :: " + service + "..");
                    mService = service;
                    appendResultsText("service http info :: " + service );
                }
                else if (service.getServiceType().contains(IPPSERVICE_TYPE)) {
                    mNsdManager.resolveService(service, mResolveListener);
                    Log.e(TAG, "service info :: " + service + "..");
                    mService = service;
                    appendResultsText("service http info :: " + service );
                }
                else{
                    appendResultsText("no service found yet");
                }
            }

Может кто-нибудь подсказать мне, где я делаю ошибку? Любая помощь будет оценена. Я использую термопринтер, который подключен к моей локальной сети, и я также попытался отправить печать из моего приложения android, используя IP-адрес и порт. Нет, он подключен. Нет проблем с подключением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...