1919import android .os .Parcelable ;
2020import android .os .Parcel ;
2121
22+ import java .net .InetAddress ;
23+
2224/**
2325 * Defines a service based on DNS service discovery
2426 * {@hide}
@@ -27,20 +29,20 @@ public class DnsSdServiceInfo implements NetworkServiceInfo, Parcelable {
2729
2830 private String mServiceName ;
2931
30- private String mRegistrationType ;
32+ private String mServiceType ;
3133
3234 private DnsSdTxtRecord mTxtRecord ;
3335
34- private String mHostname ;
36+ private InetAddress mHost ;
3537
3638 private int mPort ;
3739
38- DnsSdServiceInfo () {
40+ public DnsSdServiceInfo () {
3941 }
4042
41- DnsSdServiceInfo (String sn , String rt , DnsSdTxtRecord tr ) {
43+ public DnsSdServiceInfo (String sn , String rt , DnsSdTxtRecord tr ) {
4244 mServiceName = sn ;
43- mRegistrationType = rt ;
45+ mServiceType = rt ;
4446 mTxtRecord = tr ;
4547 }
4648
@@ -59,13 +61,13 @@ public void setServiceName(String s) {
5961 @ Override
6062 /** @hide */
6163 public String getServiceType () {
62- return mRegistrationType ;
64+ return mServiceType ;
6365 }
6466
6567 @ Override
6668 /** @hide */
6769 public void setServiceType (String s ) {
68- mRegistrationType = s ;
70+ mServiceType = s ;
6971 }
7072
7173 public DnsSdTxtRecord getTxtRecord () {
@@ -76,12 +78,12 @@ public void setTxtRecord(DnsSdTxtRecord t) {
7678 mTxtRecord = new DnsSdTxtRecord (t );
7779 }
7880
79- public String getHostName () {
80- return mHostname ;
81+ public InetAddress getHost () {
82+ return mHost ;
8183 }
8284
83- public void setHostName ( String s ) {
84- mHostname = s ;
85+ public void setHost ( InetAddress s ) {
86+ mHost = s ;
8587 }
8688
8789 public int getPort () {
@@ -96,7 +98,9 @@ public String toString() {
9698 StringBuffer sb = new StringBuffer ();
9799
98100 sb .append ("name: " ).append (mServiceName ).
99- append ("type: " ).append (mRegistrationType ).
101+ append ("type: " ).append (mServiceType ).
102+ append ("host: " ).append (mHost ).
103+ append ("port: " ).append (mPort ).
100104 append ("txtRecord: " ).append (mTxtRecord );
101105 return sb .toString ();
102106 }
@@ -109,9 +113,14 @@ public int describeContents() {
109113 /** Implement the Parcelable interface */
110114 public void writeToParcel (Parcel dest , int flags ) {
111115 dest .writeString (mServiceName );
112- dest .writeString (mRegistrationType );
116+ dest .writeString (mServiceType );
113117 dest .writeParcelable (mTxtRecord , flags );
114- dest .writeString (mHostname );
118+ if (mHost != null ) {
119+ dest .writeByte ((byte )1 );
120+ dest .writeByteArray (mHost .getAddress ());
121+ } else {
122+ dest .writeByte ((byte )0 );
123+ }
115124 dest .writeInt (mPort );
116125 }
117126
@@ -121,9 +130,15 @@ public void writeToParcel(Parcel dest, int flags) {
121130 public DnsSdServiceInfo createFromParcel (Parcel in ) {
122131 DnsSdServiceInfo info = new DnsSdServiceInfo ();
123132 info .mServiceName = in .readString ();
124- info .mRegistrationType = in .readString ();
133+ info .mServiceType = in .readString ();
125134 info .mTxtRecord = in .readParcelable (null );
126- info .mHostname = in .readString ();
135+
136+ if (in .readByte () == 1 ) {
137+ try {
138+ info .mHost = InetAddress .getByAddress (in .createByteArray ());
139+ } catch (java .net .UnknownHostException e ) {}
140+ }
141+
127142 info .mPort = in .readInt ();
128143 return info ;
129144 }
0 commit comments