Search code examples
androidgoogle-talk

Initiating Video Call


I am running the latest version of GTalk (using the Talk installer from the market) on my Gingerbread Galaxy Tab P1000.

I now want to programatically initiate a video call provided that the related contact is online and available.

As I didn't found any documentation for that I looked in the related XML and found the following interesting part:

  <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>

As it is a "Send-To" action, I don't need a special permission, do I? My problem is, that I don't know how to get an item of the type vnd.android.cursor.item/video-chat-address. Do you have any idea or hint what I might try?

Thanks in advance!


Solution

  • Edit:

    Had to do a bit of hacking around disassembling but I got this (where email is the address you want):

    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);
    

    This works, but still gives a prompt on whether you want to start a video chat, which is not quite what I need. Hope this helps some other people.