Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92784670 authored by Irfan Sheriff's avatar Irfan Sheriff
Browse files

Open network service discovery API

Add support for DNS based network service discovery API. This
allows applications to discover and resolve applications on a
local network such as Wi-Fi

Change-Id: Ie89895edd35d12b7f7a23fb5fed36cb2b2079f7a
parent d4fecc25
Loading
Loading
Loading
Loading
+64 −0
Original line number Original line Diff line number Diff line
@@ -12254,6 +12254,70 @@ package android.net.http {
}
}
package android.net.nsd {
  public class DnsSdServiceInfo implements android.os.Parcelable {
    ctor public DnsSdServiceInfo();
    method public int describeContents();
    method public java.net.InetAddress getHost();
    method public int getPort();
    method public java.lang.String getServiceName();
    method public java.lang.String getServiceType();
    method public void setHost(java.net.InetAddress);
    method public void setPort(int);
    method public void setServiceName(java.lang.String);
    method public void setServiceType(java.lang.String);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator CREATOR;
  }
  public class NsdManager {
    method public void deinitialize(android.net.nsd.NsdManager.Channel);
    method public void discoverServices(android.net.nsd.NsdManager.Channel, java.lang.String, android.net.nsd.NsdManager.DnsSdDiscoveryListener);
    method public void initialize(android.content.Context, android.os.Looper, android.net.nsd.NsdManager.ChannelListener);
    method public void registerService(android.net.nsd.NsdManager.Channel, java.lang.String, java.lang.String, int, android.net.nsd.NsdManager.DnsSdRegisterListener);
    method public void resolveService(android.net.nsd.NsdManager.Channel, java.lang.String, java.lang.String, android.net.nsd.NsdManager.DnsSdResolveListener);
    method public void stopServiceDiscovery(android.net.nsd.NsdManager.Channel, android.net.nsd.NsdManager.ActionListener);
    method public void unregisterService(android.net.nsd.NsdManager.Channel, int, android.net.nsd.NsdManager.ActionListener);
    field public static final int ALREADY_ACTIVE = 3; // 0x3
    field public static final int BUSY = 2; // 0x2
    field public static final int ERROR = 0; // 0x0
    field public static final int MAX_REGS_REACHED = 4; // 0x4
    field public static final int UNSUPPORTED = 1; // 0x1
  }
  public static abstract interface NsdManager.ActionListener {
    method public abstract void onFailure(int);
    method public abstract void onSuccess();
  }
  public static class NsdManager.Channel {
  }
  public static abstract interface NsdManager.ChannelListener {
    method public abstract void onChannelConnected(android.net.nsd.NsdManager.Channel);
    method public abstract void onChannelDisconnected();
  }
  public static abstract interface NsdManager.DnsSdDiscoveryListener {
    method public abstract void onFailure(int);
    method public abstract void onServiceFound(android.net.nsd.DnsSdServiceInfo);
    method public abstract void onServiceLost(android.net.nsd.DnsSdServiceInfo);
    method public abstract void onStarted(java.lang.String);
  }
  public static abstract interface NsdManager.DnsSdRegisterListener {
    method public abstract void onFailure(int);
    method public abstract void onServiceRegistered(int, android.net.nsd.DnsSdServiceInfo);
  }
  public static abstract interface NsdManager.DnsSdResolveListener {
    method public abstract void onFailure(int);
    method public abstract void onServiceResolved(android.net.nsd.DnsSdServiceInfo);
  }
}
package android.net.rtp {
package android.net.rtp {
  public class AudioCodec {
  public class AudioCodec {
+13 −7
Original line number Original line Diff line number Diff line
@@ -22,8 +22,8 @@ import android.os.Parcel;
import java.net.InetAddress;
import java.net.InetAddress;


/**
/**
 * Defines a service based on DNS service discovery
 * A class representing service information for network service discovery
 * {@hide}
 * {@see NsdManager}
 */
 */
public class DnsSdServiceInfo implements NetworkServiceInfo, Parcelable {
public class DnsSdServiceInfo implements NetworkServiceInfo, Parcelable {


@@ -40,56 +40,63 @@ public class DnsSdServiceInfo implements NetworkServiceInfo, Parcelable {
    public DnsSdServiceInfo() {
    public DnsSdServiceInfo() {
    }
    }


    /** @hide */
    public DnsSdServiceInfo(String sn, String rt, DnsSdTxtRecord tr) {
    public DnsSdServiceInfo(String sn, String rt, DnsSdTxtRecord tr) {
        mServiceName = sn;
        mServiceName = sn;
        mServiceType = rt;
        mServiceType = rt;
        mTxtRecord = tr;
        mTxtRecord = tr;
    }
    }


    /** Get the service name */
    @Override
    @Override
    /** @hide */
    public String getServiceName() {
    public String getServiceName() {
        return mServiceName;
        return mServiceName;
    }
    }


    /** Set the service name */
    @Override
    @Override
    /** @hide */
    public void setServiceName(String s) {
    public void setServiceName(String s) {
        mServiceName = s;
        mServiceName = s;
    }
    }


    /** Get the service type */
    @Override
    @Override
    /** @hide */
    public String getServiceType() {
    public String getServiceType() {
        return mServiceType;
        return mServiceType;
    }
    }


    /** Set the service type */
    @Override
    @Override
    /** @hide */
    public void setServiceType(String s) {
    public void setServiceType(String s) {
        mServiceType = s;
        mServiceType = s;
    }
    }


    /** @hide */
    public DnsSdTxtRecord getTxtRecord() {
    public DnsSdTxtRecord getTxtRecord() {
        return mTxtRecord;
        return mTxtRecord;
    }
    }


    /** @hide */
    public void setTxtRecord(DnsSdTxtRecord t) {
    public void setTxtRecord(DnsSdTxtRecord t) {
        mTxtRecord = new DnsSdTxtRecord(t);
        mTxtRecord = new DnsSdTxtRecord(t);
    }
    }


    /** Get the host address. The host address is valid for a resolved service. */
    public InetAddress getHost() {
    public InetAddress getHost() {
        return mHost;
        return mHost;
    }
    }


    /** Set the host address */
    public void setHost(InetAddress s) {
    public void setHost(InetAddress s) {
        mHost = s;
        mHost = s;
    }
    }


    /** Get port number. The port number is valid for a resolved service. */
    public int getPort() {
    public int getPort() {
        return mPort;
        return mPort;
    }
    }


    /** Set port number */
    public void setPort(int p) {
    public void setPort(int p) {
        mPort = p;
        mPort = p;
    }
    }
@@ -147,5 +154,4 @@ public class DnsSdServiceInfo implements NetworkServiceInfo, Parcelable {
                return new DnsSdServiceInfo[size];
                return new DnsSdServiceInfo[size];
            }
            }
        };
        };

}
}
+251 −83

File changed.

Preview size limit exceeded, changes collapsed.

+14 −0
Original line number Original line Diff line number Diff line
@@ -167,6 +167,18 @@ public class NsdService extends INsdManager.Stub {
                                NsdManager.ERROR);
                                NsdManager.ERROR);
                    }
                    }
                    break;
                    break;
                case NsdManager.UNREGISTER_SERVICE:
                    if (DBG) Slog.d(TAG, "unregister service");
                    clientInfo = mClients.get(msg.replyTo);
                    int regId = msg.arg1;
                    if (clientInfo.mRegisteredIds.remove(new Integer(regId)) &&
                            unregisterService(regId)) {
                        mReplyChannel.replyToMessage(msg, NsdManager.UNREGISTER_SERVICE_SUCCEEDED);
                    } else {
                        mReplyChannel.replyToMessage(msg, NsdManager.UNREGISTER_SERVICE_FAILED,
                                NsdManager.ERROR);
                    }
                    break;
                case NsdManager.UPDATE_SERVICE:
                case NsdManager.UPDATE_SERVICE:
                    if (DBG) Slog.d(TAG, "Update service");
                    if (DBG) Slog.d(TAG, "Update service");
                    //TODO: implement
                    //TODO: implement
@@ -237,6 +249,8 @@ public class NsdService extends INsdManager.Stub {
    }
    }


    public Messenger getMessenger() {
    public Messenger getMessenger() {
        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.INTERNET,
            "NsdService");
        return new Messenger(mAsyncServiceHandler);
        return new Messenger(mAsyncServiceHandler);
    }
    }