Jackson, Bruce wrote:
We are experiencing a problem, when trying to build a ContentDirectory which 
can be seen by an Xbox 360.
We are aware that the Xbox uses a "modified" UPnP implementation, and having 
taken this into account, the Xbox can see the UPnP device, (that is, it requests the 
device description xml) but never does anything else. Thus, we believe that there is 
something we have set incorrectly in the device xml.

In order to debug this problem, we have a correct xml capture from a Windows Media Center 
which does work with the Xbox. We realised from this, that we could not make our 
ContentDirectory "look like" the MS media center, because the device 
xml/service/event URLs are machine generated, and cannot be prefixed by the ID field.

Can you post the XML section that you are referring to of the captured XML?


I don't actually think this is the problem, but I was wondering why the id 
field is ignored, rather than being prefixed, since the method:

private static void buildDevice(String id,Device parent, ServiceReference sr) 
actually contains the line:

devUPnP.setLocation(id+"/gen-desc.xml");

... But the calling function only passes an empty String as id.

Looking at the code the id should never be empty, because the function is called as follow: String localId = new StringBuffer(id).append("/device/").append(i).toString();
        buildDevice(localId,devUPnP,aux[0]);
and as you can see the localId can't be an empty String.

BTW, inspecting again the code it seems to me that either the line:
        dd.setDescriptionURI(id+"/gen-des
        devUPnP.setLocation(id+"/gen-desc.xml");
inside the method buildDevice should be removed. I can't perform any test now so if you want to remove those line from the method and check if something changes.

Ciao,
Stefano "Kismet" Lenzi

Reply via email to