muffel
muffel

Reputation: 7360

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!

Upvotes: 15

Views: 3479

Answers (2)

eb4890
eb4890

Reputation: 106

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.

Upvotes: 9

hackbod
hackbod

Reputation: 91331

Sorry, this is not supported. Digging in to an application like that is looking at its implementation details; unless you get documentation from the author of the application of what interactions with it are supported, the best you can do is come up with code that is likely to break at any point in the future when that application is updated.

Upvotes: 2

Related Questions