web-dev-qa-db-ja.com

インテントを使用してハングアウトまたはDuoでビデオ通話を開始しますか?

ハングアウトまたはDuoでビデオ通話を開始する方法を探しています。どのインテントを使用する必要があるかに関するドキュメントは0のようです。誰かがアイデアを持っていますか?

7
damluar

A)HangoutUrlHandlerActivityShortlinkUrlHandlerActivityおよびConversationUrlHandlerActivityは、IntentUriとともに受信するために使用できます。

これまでのところ、実際に機能していますが、進行中の会話とビデオ通話のみ:

a)進行中の会話を開く:

void joinConversation(@NonNull String conversationId) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri uri = new Uri.Builder().scheme("content").authority("hangouts.google.com").appendPath("chat").appendPath(conversationId).build();
    intent.setClassName("com.google.Android.talk", "com.google.Android.apps.hangouts.phone.ConversationUrlHandlerActivity");
    intent.setDataAndType(uri, "vnd.google.Android.hangouts/vnd.google.Android.hangout_whitelist");
    startActivity(intent);
}

b)進行中のビデオ通話に参加する(IDは hangouts.google.com/hangouts/_/meet から取得されます):

void joinHangout(@NonNull String callId) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri uri = new Uri.Builder().scheme("content").authority("g.co").appendPath("hangout").appendPath(Uri.encode(callId)).build();
    intent.setClassName("com.google.Android.talk", "com.google.Android.apps.hangouts.phone.ShortlinkUrlHandlerActivity");
    intent.setDataAndType(uri, "vnd.google.Android.hangouts/vnd.google.Android.hangout_whitelist");
    startActivity(intent);
}

直接招待できない場合でも、callIdを取得するCalendar APIを使用して通話をスケジュールすることで、スケジュールされた後でハングアウトに参加できます。 Google Meet は直接の招待をサポートしていませんが、Googleカレンダーの予定のみをサポートしています。


@ Mir Milad からのコメントに基づいて、少なくとも新しいテキスト会話を作成することができました。それでも誰かを呼び出すものは何もありません(最初のメッセージが送信されるとすぐに通知されます):

/** @param googleUserId that 21 digit Google user ID, aka Gaia ID  */
void createConversation(@NonNull String googleUserId) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri uri = new Uri.Builder().scheme("content").authority("hangouts.google.com").appendPath("chat").appendPath("person").appendPath(googleUserId).build();
    intent.setClassName("com.google.Android.talk", "com.google.Android.apps.hangouts.phone.ConversationUrlHandlerActivity");
    intent.setDataAndType(uri, "vnd.google.Android.hangouts/vnd.google.Android.hangout_whitelist");
    startActivity(intent);
}

私の知る限り、ハングアウトの明示的な「電話」URLなどはありません。また、ウェブベースの場合でも、2つのGaia IDでハングアウトが開始されているため、会議室名が参加することになります。最近のコメントを見ると、Google独自の Hangouts Dialer でも壊れているようです。


B)Google Duoの場合、これはすでに回答されています こちら

0
Martin Zeitler