private int registerService(Context context) throws java.io.IOException { int port = findOpenSocket(); // Create the NsdServiceInfo object, and populate it. NsdServiceInfo serviceInfo = new NsdServiceInfo(); // The name is subject to change based on conflicts // with other services advertised on the same network. serviceInfo.setServiceName(SERVICE_NAME_DEFAULT); serviceInfo.setServiceType(SERVICE_TYPE); serviceInfo.setPort(port); mNsdManager = (NsdManager)context.getSystemService(Context.NSD_SERVICE); if (mRegistrationListener == null) initializeRegistrationListener(); mNsdManager.registerService( serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); return port; }
public void initializeResolveListener() { mResolveListener = new NsdManager.ResolveListener() { @Override public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.e(TAG, "Resolve failed" + errorCode); } @Override public void onServiceResolved(NsdServiceInfo serviceInfo) { Log.e(TAG, "Resolve Succeeded. " + serviceInfo); if (serviceInfo.getServiceName().equals(mServiceName)) { Log.d(TAG, "Same IP."); return; } mService = serviceInfo; } }; }
public void initializeRegistrationListener() { mRegistrationListener = new NsdManager.RegistrationListener() { @Override public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) { mServiceName = NsdServiceInfo.getServiceName(); Log.d(TAG, "Service registered: " + mServiceName); } @Override public void onRegistrationFailed(NsdServiceInfo arg0, int arg1) { Log.d(TAG, "Service registration failed: " + arg1); } @Override public void onServiceUnregistered(NsdServiceInfo arg0) { Log.d(TAG, "Service unregistered: " + arg0.getServiceName()); } @Override public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.d(TAG, "Service unregistration failed: " + errorCode); } }; }
public void initializeResolveListener() { mResolveListener = new NsdManager.ResolveListener() { @Override public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.e(TAG, "Resolve failed " + errorCode); mService = null; callCallback(CallbackTypeEnum.ResolveFailed); } @Override public void onServiceResolved(NsdServiceInfo serviceInfo) { Log.v(TAG, "Resolve Succeeded. " + serviceInfo); if (serviceInfo.getServiceName().equals(mServiceName)) { // Log.d(TAG, "Same IP."); // return; } mService = serviceInfo; callCallback(CallbackTypeEnum.ServiceResolved); } }; }
private void initializeResolveListener() { mResolveListener = new NsdManager.ResolveListener() { @Override public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.d(TAG, "Resolve failed"); } @Override public void onServiceResolved(final NsdServiceInfo serviceInfo) { Log.d(TAG, "Service resolved :" + serviceInfo); final String hostName = serviceInfo.getHost().getHostName(); final int port = serviceInfo.getPort(); final String serviceName = serviceInfo.getServiceName(); handler.post(new Runnable() { @Override public void run() { serviceDiscoveryListener.onBonjourServiceDiscovered(hostName, port, serviceName); } }); } }; }
public void registerService(final int port, final String serviceName, final String serviceType, final Map<String, String> attributes, final EventCallback callback) { Log.d(LOGTAG, "registerService: " + serviceName + "." + serviceType + ":" + port); synchronized (this) { if (mStartCallback != null) { throw new RuntimeException("Previous operation is not finished"); } mStartCallback = callback; } NsdServiceInfo serviceInfo = new NsdServiceInfo(); serviceInfo.setPort(port); serviceInfo.setServiceName(serviceName); serviceInfo.setServiceType(serviceType); setAttributes(serviceInfo, attributes); nsdManager.registerService(serviceInfo, NsdManager.PROTOCOL_DNS_SD, this); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_send_message); try { nsdManager = (NsdManager) this.getSystemService(NSD_SERVICE); nsdHelper = new NSDHelper(nsdManager); nsdHelper.clientThreadInitComplete = this; nsdHelper.discoverNetworkServices(SERVICE_TYPE); } catch (IOException | IllegalArgumentException e) { e.printStackTrace(); } }
private void initializeResolveListener() { mResolveListener = new NsdManager.ResolveListener() { @Override public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.e(Constants.TAG, "Resolve failed" + errorCode); } @Override public void onServiceResolved(NsdServiceInfo serviceInfo) { mServiceInfo = serviceInfo; int port = mServiceInfo.getPort(); InetAddress host = mServiceInfo.getHost(); String address = host.getHostAddress(); Log.d(Constants.TAG, "Resolved address = " + address); ServerInfo service = new ServerInfo(address, port); mServers.add(service); } }; }
public void initializeResolveListener() { mResolveListener = new NsdManager.ResolveListener() { public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { Toast.makeText(mContext, "Resolve failed",Toast.LENGTH_SHORT).show(); Log.e(TAG, "Resolve failed" + errorCode); } public void onServiceResolved(NsdServiceInfo serviceInfo) { Log.d(TAG, "Resolve Succeeded. " + serviceInfo); Toast.makeText(mContext, "Resolve succeeded",Toast.LENGTH_SHORT).show(); if (serviceInfo.getServiceName().equals(mServiceName)) { Log.d(TAG, "Same IP."); return; } mService = serviceInfo; setConnected(true); } }; }
@Override public void onCreate() { httpService = this; Log.d(TAG, "My Service Created"); try { server = new NanoHTTPDReceiver( // 0, // new File("/"), // getApplicationContext() // ); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Log.d(TAG, "using port " + server.getLocalPort()); NsdServiceInfo nsi = new NsdServiceInfo(); nsi.setPort(server.getLocalPort()); nsi.setServiceName("MultiShare"); nsi.setServiceType("_http._tcp."); mNsdManager = (NsdManager) getSystemService(Context.NSD_SERVICE); mNsdManager.registerService(nsi, NsdManager.PROTOCOL_DNS_SD, this); }
public void initializeResolveListener() { mResolveListener = new NsdManager.ResolveListener() { @Override public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.e(TAG, "Resolve failed" + errorCode); } @Override public void onServiceResolved(NsdServiceInfo serviceInfo) { Log.e(TAG, "Resolve Succeeded. " + serviceInfo); mService = serviceInfo; /* if (serviceInfo.getServiceName().equals(mServiceName)) { Log.d(TAG, "Same IP."); return; } mService = serviceInfo; */ } }; }
public void initializeRegistrationListener() { mRegistrationListener = new NsdManager.RegistrationListener() { @Override public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) { mServiceName = NsdServiceInfo.getServiceName(); } @Override public void onRegistrationFailed(NsdServiceInfo arg0, int arg1) { } @Override public void onServiceUnregistered(NsdServiceInfo arg0) { } @Override public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { } }; }
private void initResolveListener() { mResolveListener = new NsdManager.ResolveListener() { @Override public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { Timber.e("Resolve failed" + errorCode); } @Override public void onServiceResolved(NsdServiceInfo serviceInfo) { Timber.e("Resolve Succeeded. " + serviceInfo); if(onNsdChangeListener != null) { onNsdChangeListener.onServiceResolved(serviceInfo); } else { Timber.e("no OnNsdChangeListener set"); } } }; }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private static void doDiscovery(Context context) { synchronized (nsdToolsLock) { if (mNsdManager == null) { if(!connectNsdManager(context)) { return; } } if (state == NsdState.Init || state == NsdState.Idle) { initializeDiscoveryListener(); state = NsdState.Discovery; mNsdManager.discoverServices(SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener); } } }
private void initializeRegistrationListener() { mRegistrationListener = new NsdManager.RegistrationListener() { @Override public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) { // Save the service name. Android may have changed it in order to // resolve a conflict, so update the name you initially requested // with the name Android actually used. mServiceName = NsdServiceInfo.getServiceName(); } @Override public void onRegistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { // Registration failed! Put debugging code here to determine why. } @Override public void onServiceUnregistered(NsdServiceInfo arg0) { // Service has been unregistered. This only happens when you call // NsdManager.unregisterService() and pass in this listener. } @Override public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { // Unregistration failed. Put debugging code here to determine why. } }; }
public void registerService(int port) { // Create the NsdServiceInfo object, and populate it. NsdServiceInfo serviceInfo = new NsdServiceInfo(); // The name is subject to change based on conflicts // with other services advertised on the same network. serviceInfo.setServiceName(SERVICE_NAME); serviceInfo.setServiceType(SERVICE_TYPE); serviceInfo.setPort(port); mNsdManager.registerService( serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); }
public void registerService(int port) { tearDown(); // Cancel any previous registration request initializeRegistrationListener(); NsdServiceInfo serviceInfo = new NsdServiceInfo(); serviceInfo.setPort(port); serviceInfo.setServiceName(mServiceName); serviceInfo.setServiceType(SERVICE_TYPE); mNsdManager.registerService( serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); }
void start(Context context) { final NsdManager manager = (NsdManager) context.getSystemService(Context.NSD_SERVICE); if(manager != null) { manager.registerService(serviceInfo, NsdManager.PROTOCOL_DNS_SD, this); } else { Log.e(LOG_TAG, "NsdManager is null"); } }
public NsdHelper(Context context, String serviceName, CallbackInterface callback) { mContext = context; mServiceName = serviceName; mNsdManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE); this.callback = callback; // broadcaster = LocalBroadcastManager.getInstance(mContext); }
public void initializeRegistrationListener() { mRegistrationListener = new NsdManager.RegistrationListener() { @Override public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) { mServiceName = NsdServiceInfo.getServiceName(); Log.d(TAG, "Service registered: " + NsdServiceInfo); callCallback(CallbackTypeEnum.ServiceRegistered); } @Override public void onRegistrationFailed(NsdServiceInfo arg0, int arg1) { Log.d(TAG, "Service registration failed: " + arg1); callCallback(CallbackTypeEnum.RegistrationFailed); } @Override public void onServiceUnregistered(NsdServiceInfo arg0) { Log.d(TAG, "Service unregistered: " + arg0.getServiceName()); callCallback(CallbackTypeEnum.ServiceUnregistered); } @Override public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.d(TAG, "Service unregistration failed: " + errorCode); callCallback(CallbackTypeEnum.UnregistrationFailed); } }; }
public void registerService(int port) { tearDown(); // Cancel any previous registration request initializeRegistrationListener(); NsdServiceInfo serviceInfo = new NsdServiceInfo(); serviceInfo.setPort(port); serviceInfo.setServiceName(mServiceName); serviceInfo.setServiceType(SERVICE_TYPE); Log.v(TAG, Build.MANUFACTURER + " registering service: " + port); mNsdManager.registerService( serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); }
public void discoverServices() { stopDiscovery(); // Cancel any existing discovery request mService = null; servicesFound = new ArrayList<>(); initializeResolveListener(); initializeDiscoveryListener(); mNsdManager.discoverServices( SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener); }
public void initializeNsd() { mResolveListener = new NsdManager.ResolveListener() { @Override public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.e(TAG, "Resolve failed" + errorCode); Toast.makeText(mContext, "Resolve failed" + errorCode, Toast.LENGTH_SHORT).show(); } @Override public void onServiceResolved(NsdServiceInfo serviceInfo) { Log.d(TAG, "Resolve Succeeded. " + serviceInfo); Toast.makeText(mContext, "Resolve Succeeded. " + serviceInfo, Toast.LENGTH_SHORT).show(); if (serviceInfo.getServiceName().equals(mServiceName) && flag) { Log.d(TAG, "Same IP."); Toast.makeText(mContext, "Same IP.", Toast.LENGTH_SHORT).show(); return; } mService = serviceInfo; final NsdChatActivity ac = (NsdChatActivity)mContext; ac.runOnUiThread(new Runnable() { @Override public void run() { //show the join button ac.setVisibilityButton(true); } }); //ac.setVisibilityButton(true); } }; }
public void initializeRegistrationListener() { mRegistrationListener = new NsdManager.RegistrationListener() { @Override public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) { mServiceName = NsdServiceInfo.getServiceName(); flag = true; Log.d(TAG, "Service registered: " + mServiceName); Toast.makeText(mContext, "Service registered: " + mServiceName, Toast.LENGTH_SHORT).show(); } @Override public void onRegistrationFailed(NsdServiceInfo arg0, int arg1) { Log.d(TAG, "Service registration failed: " + arg1); Toast.makeText(mContext,"Service registration failed: " + arg1, Toast.LENGTH_SHORT).show(); } @Override public void onServiceUnregistered(NsdServiceInfo arg0) { Log.d(TAG, "Service unregistered: " + arg0.getServiceName()); Toast.makeText(mContext, "Service unregistered: " + arg0.getServiceName(), Toast.LENGTH_SHORT).show(); flag = false; } @Override public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { Log.d(TAG, "Service unregistration failed: " + errorCode); Toast.makeText(mContext, "Service unregistration failed: " + errorCode, Toast.LENGTH_SHORT).show(); } }; }
public void registerService(int port) { tearDown(); // Cancel any previous registration request initializeRegistrationListener(); NsdServiceInfo serviceInfo = new NsdServiceInfo(); serviceInfo.setPort(port); mServiceName = NsdChatActivity.mServiceName; serviceInfo.setServiceName(mServiceName); serviceInfo.setServiceType(SERVICE_TYPE); Toast.makeText(mContext, "Service registered at port: " + port,Toast.LENGTH_SHORT).show(); mNsdManager.registerService( serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); }
public void discoverServices() { stopDiscovery(); // Cancel any existing discovery request mServiceName = NsdChatActivity.mServiceName; initializeDiscoveryListener(); mNsdManager.discoverServices( SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener); }
void start() { mNsdManager = (NsdManager) getSystemService(Context.NSD_SERVICE); mNsdManager.discoverServices(Device.SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener); mThisDeviceName = new Settings(getContext()).getString(Settings.Key.DEVICE_NAME); }
/** * @param nsdManager Android {@link NsdManager}. * @param nsdListener Service discovery listener. */ public NsdHelper(NsdManager nsdManager, NsdListener nsdListener) { this.mNsdManager = nsdManager; this.mNsdListener = nsdListener; this.mDiscoveryTimer = new DiscoveryTimer(this, mDiscoveryTimeout); this.mResolveQueue = new ResolveQueue(this); }
/** * @param context Context is only needed to create {@link NsdManager} instance. * @param nsdListener Service discovery listener. */ public NsdHelper(Context context, NsdListener nsdListener) { this.mNsdManager = (NsdManager) context.getSystemService(Context.NSD_SERVICE); this.mNsdListener = nsdListener; this.mDiscoveryTimer = new DiscoveryTimer(this, mDiscoveryTimeout); this.mResolveQueue = new ResolveQueue(this); }
/** * Register new service with given serivce name, type and port. * * @param desiredServiceName Desired service name. If the name already exists in network it will be change to something like 'AppChat (1)'. * @param serviceType Service type. * @param port Service port. */ public void registerService(String desiredServiceName, String serviceType, int port) { if (port == 0) return; mRegisteredServiceInfo = new NsdServiceInfo(); mRegisteredServiceInfo.setServiceName(desiredServiceName); mRegisteredServiceInfo.setServiceType(serviceType); mRegisteredServiceInfo.setPort(port); mRegistrationListener = new NsdListenerRegistration(this); mNsdManager.registerService(mRegisteredServiceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); }
/** * Start discovering services. * * @param serviceType Service type, eg. "_http._tcp.". Typical names can be obtain from {@link com.rafakob.nsdhelper.NsdType} * @param serviceName When service is discovered it will check if it's name contains this text. It is NOT case sensitive. */ public void startDiscovery(String serviceType, String serviceName) { if (!mDiscoveryStarted) { mDiscoveryStarted = true; mDiscoveryTimer.start(); mDiscoveryServiceType = serviceType; mDiscoveryServiceName = serviceName; mDiscoveryListener = new NsdListenerDiscovery(this); mNsdManager.discoverServices(mDiscoveryServiceType, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener); } }
public synchronized void start() { if (mStarted) { throw new IllegalStateException(); } if (!mTransitioning) { discoverServices(mServiceType, NsdManager.PROTOCOL_DNS_SD, mDiscoveryListener); mTransitioning = true; } mStarted = true; }
@Override public void onDiscoveryStopped(String serviceType) { Log.d(TAG, "onDiscoveryStopped() serviceType = [" + serviceType + "]"); if (mStarted) { discoverServices(serviceType, NsdManager.PROTOCOL_DNS_SD, this); } else { mTransitioning = false; } }
public void testStartStop() { startDiscoveryOnMainThread(); verify(mDiscoverResolver).discoverServices(eq(SERVICE_TYPE), eq(NsdManager.PROTOCOL_DNS_SD), any(NsdManager.DiscoveryListener.class)); mDiscoveryListener.onDiscoveryStarted(SERVICE_TYPE); verify(mDiscoverResolver, never()).stopServiceDiscovery(any(NsdManager.DiscoveryListener.class)); stopDiscoveryOnMainThread(); verify(mDiscoverResolver).stopServiceDiscovery(any(NsdManager.DiscoveryListener.class)); }
public void testDebounceStartStop() { startDiscoveryOnMainThread(); verify(mDiscoverResolver).discoverServices(eq(SERVICE_TYPE), eq(NsdManager.PROTOCOL_DNS_SD), any(NsdManager.DiscoveryListener.class)); stopDiscoveryOnMainThread(); verify(mDiscoverResolver, never()).stopServiceDiscovery(any(NsdManager.DiscoveryListener.class)); mDiscoveryListener.onDiscoveryStarted(SERVICE_TYPE); verify(mDiscoverResolver).stopServiceDiscovery(any(NsdManager.DiscoveryListener.class)); }