知道的可以帮帮我吗。我正在尝试打开需要联系的 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”它工作正常并打开与机器人的聊天,但我需要从我的电话簿中打开联系人。
也许有人有同样的问题?
提前谢谢你。
我们这里有两个选择:
如果用户在电报中有用户名,请使用以下网址将用户名替换为原来的。
https://t.me/username
如果您想使用 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);
使用可以使用完整的 url https://telegram.me/username 代替。