다음을 통해 공유


NsdManager Class

Definition

The Network Service Discovery Manager class provides the API to discover services on a network.

[Android.Runtime.Register("android/net/nsd/NsdManager", DoNotGenerateAcw=true)]
public sealed class NsdManager : Java.Lang.Object
[<Android.Runtime.Register("android/net/nsd/NsdManager", DoNotGenerateAcw=true)>]
type NsdManager = class
    inherit Object
Inheritance
NsdManager
Attributes

Remarks

The Network Service Discovery Manager class provides the API to discover services on a network. As an example, if device A and device B are connected over a Wi-Fi network, a game registered on device A can be discovered by a game on device B. Another example use case is an application discovering printers on the network.

The API currently supports DNS based service discovery and discovery is currently limited to a local network over Multicast DNS. DNS service discovery is described at http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt

The API is asynchronous, and responses to requests from an application are on listener callbacks on a separate internal thread.

There are three main operations the API supports - registration, discovery and resolution.

Application start
                                            |
                                            |
                                            |                  onServiceRegistered()
                                Register any local services  /
                                 to be advertised with       \
                                  registerService()            onRegistrationFailed()
                                            |
                                            |
                                     discoverServices()
                                            |
                                 Maintain a list to track
                                   discovered services
                                            |
                                            |--------->
                                            |          |
                                            |      onServiceFound()
                                            |          |
                                            |     add service to list
                                            |          |
                                            |<----------
                                            |
                                            |--------->
                                            |          |
                                            |      onServiceLost()
                                            |          |
                                            |   remove service from list
                                            |          |
                                            |<----------
                                            |
                                            |
                                            | Connect to a service
                                            | from list ?
                                            |
                                     resolveService()
                                            |
                                    onServiceResolved()
                                            |
                                Establish connection to service
                                with the host and port information

An application that needs to advertise itself over a network for other applications to discover it can do so with a call to #registerService. If Example is a http based application that can provide HTML data to peer services, it can register a name "Example" with service type "_http._tcp". A successful registration is notified with a callback to RegistrationListener#onServiceRegistered and a failure to register is notified over RegistrationListener#onRegistrationFailed

A peer application looking for http services can initiate a discovery for "_http._tcp" with a call to #discoverServices. A service found is notified with a callback to DiscoveryListener#onServiceFound and a service lost is notified on DiscoveryListener#onServiceLost.

Once the peer application discovers the "Example" http service, and either needs to read the attributes of the service or wants to receive data from the "Example" application, it can initiate a resolve with #resolveService to resolve the attributes, host, and port details. A successful resolve is notified on ResolveListener#onServiceResolved and a failure is notified on ResolveListener#onResolveFailed.

Applications can reserve for a service type at http://www.iana.org/form/ports-service. Existing services can be found at http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

Java documentation for android.net.nsd.NsdManager.

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Fields

ActionNsdStateChanged

Broadcast intent action to indicate whether network service discovery is enabled or disabled.

ExtraNsdState

The lookup key for an int that indicates whether network service discovery is enabled or disabled.

FailureAlreadyActive
Obsolete.

Indicates that the operation failed because it is already active.

FailureBadParameters
Obsolete.

Indicates that the service has failed to resolve because of bad parameters.

FailureInternalError
Obsolete.

Failures are passed with RegistrationListener#onRegistrationFailed, RegistrationListener#onUnregistrationFailed, DiscoveryListener#onStartDiscoveryFailed, DiscoveryListener#onStopDiscoveryFailed or ResolveListener#onResolveFailed.

FailureMaxLimit
Obsolete.

Indicates that the operation failed because the maximum outstanding requests from the applications have reached.

FailureOperationNotRunning
Obsolete.

Indicates that the stop operation failed because it is not running.

NsdStateDisabled

Network service discovery is disabled

NsdStateEnabled

Network service discovery is enabled

ProtocolDnsSd
Obsolete.

Dns based service discovery protocol

Properties

Class

Returns the runtime class of this Object.

(Inherited from Object)
Handle

The handle to the underlying Android instance.

(Inherited from Object)
JniIdentityHashCode (Inherited from Object)
JniPeerMembers
PeerReference (Inherited from Object)
ThresholdClass

This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

(Inherited from Object)
ThresholdType

This API supports the Mono for Android infrastructure and is not intended to be used directly from your code.

(Inherited from Object)

Methods

Clone()

Creates and returns a copy of this object.

(Inherited from Object)
DiscoverServices(DiscoveryRequest, IExecutor, NsdManager+IDiscoveryListener)
DiscoverServices(String, NsdProtocol, Network, IExecutor, NsdManager+IDiscoveryListener)
DiscoverServices(String, NsdProtocol, NetworkRequest, IExecutor, NsdManager+IDiscoveryListener)
DiscoverServices(String, NsdProtocol, NsdManager+IDiscoveryListener)

Initiate service discovery to browse for instances of a service type.

Dispose() (Inherited from Object)
Dispose(Boolean) (Inherited from Object)
Equals(Object)

Indicates whether some other object is "equal to" this one.

(Inherited from Object)
GetHashCode()

Returns a hash code value for the object.

(Inherited from Object)
JavaFinalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

(Inherited from Object)
Notify()

Wakes up a single thread that is waiting on this object's monitor.

(Inherited from Object)
NotifyAll()

Wakes up all threads that are waiting on this object's monitor.

(Inherited from Object)
RegisterService(NsdServiceInfo, NsdProtocol, IExecutor, NsdManager+IRegistrationListener)
RegisterService(NsdServiceInfo, NsdProtocol, NsdManager+IRegistrationListener)

Register a service to be discovered by other services.

RegisterServiceInfoCallback(NsdServiceInfo, IExecutor, NsdManager+IServiceInfoCallback)
ResolveService(NsdServiceInfo, IExecutor, NsdManager+IResolveListener)
ResolveService(NsdServiceInfo, NsdManager+IResolveListener)

Resolve a discovered service.

SetHandle(IntPtr, JniHandleOwnership)

Sets the Handle property.

(Inherited from Object)
StopServiceDiscovery(NsdManager+IDiscoveryListener)

Stop service discovery initiated with M:Android.Net.Nsd.NsdManager.DiscoverServices(System.String,Android.Net.Nsd.NsdProtocol,Android.Net.Nsd.NsdProtocol).

StopServiceResolution(NsdManager+IResolveListener)
ToArray<T>() (Inherited from Object)
ToString()

Returns a string representation of the object.

(Inherited from Object)
UnregisterFromRuntime() (Inherited from Object)
UnregisterService(NsdManager+IRegistrationListener)

Unregister a service registered through M:Android.Net.Nsd.NsdManager.RegisterService(Android.Net.Nsd.NsdServiceInfo,Android.Net.Nsd.NsdProtocol,Android.Net.Nsd.NsdProtocol).

UnregisterServiceInfoCallback(NsdManager+IServiceInfoCallback)
Wait()

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>.

(Inherited from Object)
Wait(Int64, Int32)

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed.

(Inherited from Object)
Wait(Int64)

Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed.

(Inherited from Object)

Explicit Interface Implementations

IJavaPeerable.Disposed() (Inherited from Object)
IJavaPeerable.DisposeUnlessReferenced() (Inherited from Object)
IJavaPeerable.Finalized() (Inherited from Object)
IJavaPeerable.JniManagedPeerState (Inherited from Object)
IJavaPeerable.SetJniIdentityHashCode(Int32) (Inherited from Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) (Inherited from Object)
IJavaPeerable.SetPeerReference(JniObjectReference) (Inherited from Object)

Extension Methods

JavaCast<TResult>(IJavaObject)

Performs an Android runtime-checked type conversion.

JavaCast<TResult>(IJavaObject)
GetJniTypeName(IJavaPeerable)

Gets the JNI name of the type of the instance self.

JavaAs<TResult>(IJavaPeerable)

Try to coerce self to type TResult, checking that the coercion is valid on the Java side.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Try to coerce self to type TResult, checking that the coercion is valid on the Java side.

Applies to