Android - 从我自己的 Android 应用程序打开 Telegram 特定帐户

问题描述 投票:0回答:2

知道的可以帮帮我吗。我正在尝试打开需要联系的 Telegram 应用程序,我尝试了两种不同的方式,但没有人不工作。

第一种方式: 1) 我得到了 userId,例如 1111111111,如果我从 WEB 打开它,它工作正常:https://web.telegram.org/#/im?p=u1111111111,但是当我试图从我的应用程序 ID 不起作用,总是向我敬酒“没有使用此用户名的 Telegram 帐户”:

接下来的代码:

Intent telegram = new Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/1111111111")); //where 1111111111 - telegram userId
telegram.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
telegram.setPackage("org.telegram.messenger");
startActivity(telegram);

我询问了 Telegram 支持,他们告诉我 url“https://t.me/”只能与 UserNames 而不是 UserId 一起使用,并且没有给我任何可用于 UserId 的 url。但是用户名也不容易获得,并不是每个用户都有用户名。

然后我尝试使用 URI 方案的第二种方式:

Intent telegram = new Intent(Intent.ACTION_VIEW);
telegram.setData(Uri.parse("tg://msg?text=Hello&to=+496........."));
telegram.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
telegram.setPackage("org.telegram.messenger");
context.startActivity(telegram);

但它不会打开所需的联系人,只启动 Telegram 应用程序。我尝试的所有联系人都存在于我的电话簿中。为什么这个 URI 方案不起作用?

“tg://msg?text=Hello&to=+496…………”

如果我使用这个方案“tg://resolve?domain=BotSupport”它工作正常并打开与机器人的聊天,但我需要从我的电话簿中打开联系人。

也许有人有同样的问题?

提前谢谢你。

android android-intent uri telegram start-activity
2个回答
1
投票

我们这里有两个选择:

  1. 如果用户在电报中有用户名,请使用以下网址将用户名替换为原来的。

    https://t.me/username
    
  2. 如果您想使用 user_id 打开聊天,请使用以下 URL 从您的应用程序中打开所需的聊天,将 xxxxxxxx 替换为 user_id

    tg://openmessage?user_id=xxxxxxxx
    

举个例子:

int userid = 1111111111
Intent tgintent = new Intent(Intent.ACTION_VIEW,
                      Uri.parse("tg://openmessage?user_id=" + userid));
tgintent.setPackage("org.telegram.messenger");
startActivity(tgintent);

0
投票

使用可以使用完整的 url https://telegram.me/username 代替。

© www.soinside.com 2019 - 2024. All rights reserved.