2014-04-22 8 views
6

क्या यह पता लगाना संभव है कि वर्तमान वाईफाई नेटवर्क पर कोई क्रोमकास्ट डिवाइस है या नहीं। मैंने देखा है कि एक कास्ट एसडीके है लेकिन मुझे उपकरणों की खोज के बारे में कुछ भी नहीं मिला। इससे पहले कभी इस एसडीके के साथ काम नहीं किया, यह संभव है कि मैंने इसे अनदेखा कर दिया हो।क्या मैं प्रोग्रामिक रूप से पता लगा सकता हूं कि वर्तमान वाईफाई नेटवर्क पर कोई क्रोमकास्ट डिवाइस है या नहीं?

उत्तर

3

आप कास्ट बटन का उपयोग किए बिना खोज निष्पादित कर सकते हैं; आपको v7 समर्थन लाइब्रेरी से मीडिया राउटर का उपयोग करने की आवश्यकता है (जिसे v7 एपकंपैप समर्थन की भी आवश्यकता है) और फिर अपने कोड से मीडिया राउटर का एक उदाहरण प्राप्त करें, एक चयनकर्ता को परिभाषित करें (जो मूल रूप से उन डिवाइसों को सीमित करने के लिए एक फ़िल्टर है जो आप रुचि रखते हैं) और फिर खोज शुरू करने के लिए कॉलबैक जोड़ें। चूंकि डिवाइसों की खोज की जाती है (असीमित रूप से), आपके कॉलबैक को कॉल किया जाएगा। इस नमूना project पर विशेष रूप से देखें, विशेष रूप से यह class जो वही है जो आप चाहते हैं।

5

Chromecast उपकरणों प्रकार _googlecast._tcp

$ avahi-browse -r _googlecast._tcp 
+ eth0 IPv4 Living Room         _googlecast._tcp  local 
= eth0 IPv4 Living Room         _googlecast._tcp  local 
    hostname = [Living\032Room.local] 
    address = [192.168.1.100] 
    port = [8009] 
    txt = ["st=0" "fn=Living Room" "ca=5" "ic=/setup/icon.png" "md=Chromecast" "ve=02" "id=c832a30b81ab84a706c82745438fcd64"] 
0

साथ खोज योग्य avahi का उपयोग कर निम्नलिखित हैं recommended way of Google आप स्कैन करना Chromecast उपकरणों एक Android एप्लिकेशन से सामग्री प्रदान करने के लिए की जरूरत नहीं है। आप

app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider" 
कार्रवाई के रूप में

साथ ActionBarActivity के साथ विस्तार और फिर onCreateOptionsMenu में जोड़ने() एक ActionBar विकल्प आइटम के आधार पर आपके Activity करने के लिए एक कास्ट करें बटन जोड़ सकते हैं।

Here आप Chromecast स्टिक को भेजने के तरीके पर एक संपूर्ण नमूना पा सकते हैं।

कास्ट डिवाइस खोज Android समर्थन लाइब्रेरी में एंड्रॉयड MediaRouter एपीआई का उपयोग किया जा सकता है, संगतता के साथ वापस: यदि आप किसी भी कारण से मैन्युअल रूप से स्कैन करना चाहते हैं, तो आप डॉक्स से AndroidMediaRouters एपीआई, बोली का उपयोग कर सकते एंड्रॉइड 2.1 पर।

2

आप के अनुसूचित जनजाति (सेवा प्रकार) के साथ अपने स्थानीय नेटवर्क में SSDP (सिंपल सर्विस डिस्कवरी प्रोटोकॉल) का उपयोग कर सकते हैं:

urn:dial-multiscreen-org:service:dial:1

आपका SSDP क्वेरी इस तरह दिखना चाहिए:

M-SEARCH * HTTP/1.1\r\n 
Host: 239.255.255.250:1900\r\n 
MAN: "ssdp:discover"\r\n 
MX: 3\r\n 
ST: urn:dial-multiscreen-org:service:dial:1\r\n\r\n 

आपको उन सभी डिवाइसों (आईपी और पोर्ट) की एक सूची मिलेगी जो उन सेवा प्रकारों का समर्थन करते हैं (जैसे क्रोमकास्ट करता है)।

http://IP:8008/ssdp/device-desc.xml

प्रतिक्रिया इस तरह दिखेगा:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <specVersion> 
     <major>1</major> 
     <minor>0</minor> 
    </specVersion> 
    <URLBase>http://192.168.0.0:8008</URLBase> 
    <device> 
     <deviceType>urn:dial-multiscreen-org:device:dial:1</deviceType> 
     <friendlyName>Chromecast</friendlyName> 
     <manufacturer>Google Inc.</manufacturer> 
     <modelName>Eureka Dongle</modelName> 
     <UDN>uuid:3c7f2a1e-dbd2-f94d-b456-816555a9d1f9</UDN> 
     <iconList> 
     <icon> 
      <mimetype>image/png</mimetype> 
      <width>98</width> 
      <height>55</height> 
      <depth>32</depth> 
      <url>/setup/icon.png</url> 
     </icon> 
     </iconList> 
     <serviceList> 
     <service> 
      <serviceType>urn:dial-multiscreen-org:service:dial:1</serviceType> 
      <serviceId>urn:dial-multiscreen-org:serviceId:dial</serviceId> 
      <controlURL>/ssdp/notfound</controlURL> 
      <eventSubURL>/ssdp/notfound</eventSubURL> 
      <SCPDURL>/ssdp/notfound</SCPDURL> 
     </service> 
     </serviceList> 
    </device> 
</root> 

अधिक इसके बारे में जानकारी यहाँ अगर यह सच में एक Chromecast डिवाइस है की जाँच करने के 8008: तो फिर तुम इस IP से एक xml फ़ाइल खींच सकता है : http://wolfpaulus.com/jounal/mac/chromecasting/

आप अपने Chromecast के लिए कुछ स्ट्रीम करने के लिए चाहते हैं, तो आपको कॉल करके Chromecast ऐप्स के बारे में जानकारी प्राप्त कर सकते हैं:

http://IP:8008/apps/ChromeCast

0

com.youview.tinydnssd.DiscoverResolver का उपयोग करना एक बहुत ही सरल समाधान है। मेरी कार्यान्वयन यहां:

DiscoverResolver resolver = new DiscoverResolver(ctx, "_googlecast._tcp.", new DiscoverResolverHandler()); 

DiscoverResolverHandler() में आप परिणाम संभाल कर सकते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे