Я новичок в 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-адрес и порт. Нет, он подключен. Нет проблем с подключением.