2011-06-20 9 views
15

Używam najnowszej wersji GTalk (używając instalatora Talk z rynku) na mojej karcie G1 z Gingerbread Galaxy.Inicjowanie połączenia wideo

Chcę teraz zainicjować programowo rozmowę wideo, pod warunkiem, że powiązany kontakt jest dostępny online.

Ponieważ nie znaleziono żadnych dokumentacji, że wyglądam w related XML i znaleźć następującą ciekawą część:

<activity-alias android:icon="@drawable/ic_launcher_google_videochat" android:name="PublicCallIntentDispatcher" android:targetActivity="PublicIntentDispatcher"> 
      <intent-filter> 
       <action android:name="android.intent.action.SENDTO" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:mimeType="vnd.android.cursor.item/video-chat-address" android:scheme="xmpp" /> 
      </intent-filter> 
     </activity-alias> 

Ponieważ jest to „Send-To” działanie, ja nie potrzebuję specjalne pozwolenie, prawda? Mój problem polega na tym, że nie wiem, jak uzyskać element typu vnd.android.cursor.item/video-chat-address. Czy masz jakiś pomysł lub podpowiedź, co mogę spróbować?

Z góry dziękuję!

+0

(trochę zardzewiałe): czy znasz przypadek, w którym niektóre istniejące oprogramowanie wysyła takie intencje (na przykład ze strony kontaktów?). Możesz spróbować zainicjować czat wideo, sprawdzić swój LogCat i zmodyfikować kod URI dla swojego zamiaru. Nie mam zainstalowanej aplikacji Talk, która pozwala na czat wideo, więc nie mogę tego wypróbować, przepraszam! Mam nadzieję że to pomoże! – OEP

Odpowiedz

8

Edit:

Musiałem zrobić trochę hacking wokół demontażu ale mam to (gdzie e-mail jest adresem chcesz):

Uri imUri = new Uri.Builder().scheme("xmpp").authority("gtalk").query("call;type=video").appendPath(email).build(); 
Intent IM = new Intent(Intent.ACTION_SENDTO); 
IM.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
IM.setData(imUri); 
startActivity(IM); 

To działa, ale nadal daje wiersz o tym, czy chcesz rozpocząć czat wideo, który nie jest tym, czego potrzebuję. Mam nadzieję, że to pomaga niektórym innym ludziom.

1

Niestety, nie jest to obsługiwane. Wkopanie się w taką aplikację polega na zapoznaniu się z jej szczegółami implementacji; Jeśli nie otrzymasz dokumentacji od autora aplikacji, jakie interakcje z nią są obsługiwane, najlepiej jest wymyślić kod, który najprawdopodobniej złamie się w dowolnym momencie w przyszłości, gdy ta aplikacja zostanie zaktualizowana.

+1

Masz na myśli, że nie jest częścią "rzeczy, których nie można zmienić" :) [http://android-developers.blogspot.com/2011/06/things-that-cannot-change.html] – Matthieu

+1

Korekta linków [http: // /android-developers.blogspot.com/2011/06/things-that-cannot-change.html – WarrenT