121ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff/* 221ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * Copyright (C) 2012 The Android Open Source Project 321ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * 421ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * Licensed under the Apache License, Version 2.0 (the "License"); 521ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * you may not use this file except in compliance with the License. 621ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * You may obtain a copy of the License at 721ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * 821ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * http://www.apache.org/licenses/LICENSE-2.0 921ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * 1021ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * Unless required by applicable law or agreed to in writing, software 1121ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * distributed under the License is distributed on an "AS IS" BASIS, 1221ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1321ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * See the License for the specific language governing permissions and 1421ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * limitations under the License. 1521ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff */ 1621ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff 1721ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriffpackage android.net.wifi.p2p.nsd; 1821ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff 198bf825f48fde77cb2feb8720aac17093581bb085Irfan Sheriffimport android.net.wifi.p2p.WifiP2pManager; 208bf825f48fde77cb2feb8720aac17093581bb085Irfan Sheriff 2121ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff/** 228bf825f48fde77cb2feb8720aac17093581bb085Irfan Sheriff * A class for creating a Upnp service discovery request for use with 238bf825f48fde77cb2feb8720aac17093581bb085Irfan Sheriff * {@link WifiP2pManager#addServiceRequest} and {@link WifiP2pManager#removeServiceRequest} 248bf825f48fde77cb2feb8720aac17093581bb085Irfan Sheriff * 258bf825f48fde77cb2feb8720aac17093581bb085Irfan Sheriff * {@see WifiP2pManager} 268bf825f48fde77cb2feb8720aac17093581bb085Irfan Sheriff * {@see WifiP2pServiceRequest} 278bf825f48fde77cb2feb8720aac17093581bb085Irfan Sheriff * {@see WifiP2pDnsSdServiceRequest} 2821ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff */ 2921ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriffpublic class WifiP2pUpnpServiceRequest extends WifiP2pServiceRequest { 3021ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff 3121ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff /** 3221ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * This constructor is only used in newInstance(). 3321ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * 3421ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * @param query The part of service specific query. 3521ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * @hide 3621ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff */ 3721ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff protected WifiP2pUpnpServiceRequest(String query) { 3821ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff super(WifiP2pServiceInfo.SERVICE_TYPE_UPNP, query); 3921ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff } 4021ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff 4121ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff /** 4221ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * This constructor is only used in newInstance(). 4321ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * @hide 4421ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff */ 4521ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff protected WifiP2pUpnpServiceRequest() { 4621ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff super(WifiP2pServiceInfo.SERVICE_TYPE_UPNP, null); 4721ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff } 4821ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff 4921ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff /** 5021ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * Create a service discovery request to search all UPnP services. 5121ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * 5221ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * @return service request for UPnP. 5321ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff */ 5421ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff public static WifiP2pUpnpServiceRequest newInstance() { 5521ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff return new WifiP2pUpnpServiceRequest(); 5621ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff } 5721ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff /** 5821ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * Create a service discovery request to search specified UPnP services. 5921ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * 6021ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * @param st ssdp search target. Cannot be null.<br> 6121ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * e.g ) <br> 6221ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * <ul> 6321ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * <li>"ssdp:all" 6421ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * <li>"upnp:rootdevice" 6521ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * <li>"urn:schemas-upnp-org:device:MediaServer:2" 6621ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * <li>"urn:schemas-upnp-org:service:ContentDirectory:2" 6721ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * <li>"uuid:6859dede-8574-59ab-9332-123456789012" 6821ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * </ul> 6921ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff * @return service request for UPnP. 7021ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff */ 7121ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff public static WifiP2pUpnpServiceRequest newInstance(String st) { 7221ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff if (st == null) { 7321ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff throw new IllegalArgumentException("search target cannot be null"); 7421ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff } 7521ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff StringBuffer sb = new StringBuffer(); 7621ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff sb.append(String.format("%02x", WifiP2pUpnpServiceInfo.VERSION_1_0)); 7721ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff sb.append(WifiP2pServiceInfo.bin2HexStr(st.getBytes())); 7821ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff return new WifiP2pUpnpServiceRequest(sb.toString()); 7921ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff } 8021ba8153325e010224c6bc75a0acdc98b6ca82e8Irfan Sheriff} 81