2

UPnP 対応デバイスに接続するために、android でcling UPnPフレームワークを使用しています。デバイスの作成と、ネットワークで使用可能なデバイスの参照に成功しました。しかし、ネットワーク内のサムスン TV の場合、フレームワークはアクションを返しません。ここでは、RenderingControl のサービスの詳細を追加しています

<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<controlURL>/upnp/control/RenderingControl1</controlURL>
<eventSubURL>/upnp/event/RenderingControl1</eventSubURL>
<SCPDURL>RenderingControl1.xml</SCPDURL>
</service>

これは、サービス記述子 xml ファイルを取得するための URL です。

> http://<ip address>:52235/dmr/SamsungMRDesc.xml

しかし、SCPDURL は相対的であり、しがみつくフレームワークが検索しているかどうか疑問に思っています

http://<ip address>:52235/RenderingControl1.xml

それ以外の

http://<ip address>:52235/dmr/RenderingControl1.xml

cling UPnP のサービスに対してアクションが表示されないのはそのためですか、それとも私は本当に愚かなことをしていますか?

cling UPnPでこれを適切に行うにはどうすればよいですか?

4

1 に答える 1

2

事前に説明しておくと、URL*SamsungMRDesc.xmlデバイス記述子であり、作成したサービス記述子ではありません。

<SCPDURL>UPnPごとの仕様は、「デバイスの説明が配置されているURLを基準にしています」。そうです、正しい絶対SCPDURLは2番目のものです。しかし、Clingに本当にこのような深刻なバグがあったとしたら、私は非常に驚きます。だからいくつかの理論を提供するために:

  1. 「ClingUPnPにアクションが表示されない」とはどういう意味ですか?それは既存のサンプルアプリですか、それともコードですか?しがみつくこと自体はGUIを提供しません。そのコードにバグがあるのでしょうか?
  2. デバイス記述子のURL(SamsungMRDesc)について絶対に確信していますか?手動で、つまりURLをコピーしてWebブラウザに貼り付けるだけでアクセスできますか?
  3. SCPDURLをコピーしてWebブラウザに貼り付けると何が表示されますか?下にいくつかの<action>ノードがあり<actionList>ますか?
  4. Intel DeveloperToolsのDeviceSpyを使用してSamsungTVにクエリを実行しようとしましたか?Cling以外に、他のUPnPスタックが何を認識しているかを確認できます。さらに、デバイスノードとサービスノードを右クリックして、DeviceSpyが説明を探す場所を確認できます。
  5. 最後の例として、Wiresharkで送受信されているものをスニッフィングできます。WiresharkIPフィルターをSamsungTVのアドレスに設定することから始めます。

理論4と5では、明らかにTV(およびAndroid)と同じネットワークに接続されたPCが必要です。

于 2012-09-12T19:24:46.600 に答える