Android - 向特定号码发送电报消息
Posted
技术标签:
【中文标题】Android - 向特定号码发送电报消息【英文标题】:Android - Send Telegram message to a specific number 【发布时间】:2015-07-15 07:38:53 【问题描述】:我正在尝试从我的 android 应用程序中向特定号码发送 Telegram 消息。现在我的代码启动 Telegram 应用程序,然后用户必须选择目的地。我想要做的是将消息发送到指定的号码,而无需用户选择联系人。我的代码如下:
/**
* Intent to send a telegram message
* @param msg
*/
void intentMessageTelegram(String msg)
final String appName = "org.telegram.messenger";
final boolean isAppInstalled = isAppAvailable(mUIActivity.getApplicationContext(), appName);
if (isAppInstalled)
Intent myIntent = new Intent(Intent.ACTION_SEND);
myIntent.setType("text/plain");
myIntent.setPackage(appName);
myIntent.putExtra(Intent.EXTRA_TEXT, msg);//
mUIActivity.startActivity(Intent.createChooser(myIntent, "Share with"));
else
Toast.makeText(mUIActivity, "Telegram not Installed", Toast.LENGTH_SHORT).show();
【问题讨论】:
我通过使用eMail
意图(它打开了一个选择器 - 列出了电报)做了类似的事情,最终我可以将其设为默认值。我还发送可选附件(0、1 或 2 - 取决于用户选择)。我使用收件人的eMail address
。
我不确定你能做到这一点,因为 Telegram 使用你的手机联系人列表,并且它本身没有键入一个新号码进行聊天功能跨度>
您好,请在this 问题中查看我的答案。
【参考方案1】:
您不能发送到特殊号码,但您可以通过 USERID 发送
try
Intent telegramIntent = new Intent(Intent.ACTION_VIEW);
telegramIntent.setData(Uri.parse("http://telegram.me/USERID"));
startActivity(telegramIntent);
catch (Exception e)
// show error message
此代码将提示用户选择支持电报 uri 的应用程序,例如 Telegram 本身和 Mobogram!
提示:不要设置包名。有些人安装了电报替代品,例如 mobogram。
【讨论】:
如何获取用户名?【参考方案2】:Telegram Android 应用程序无法直接向电报用户发送消息,因此如果您使用共享意图,您将获得电报/任何其他应用程序想要对共享消息执行的操作。在这种情况下,请打开联系人列表将这条消息发送给他。
如果您想直接向 Telegram 用户发送消息,您应该使用 Telegram API https://core.telegram.org/api#getting-started
在应用中配置 API 密钥后,您可以使用这些方法发送消息、阅读消息甚至获取电报联系人
https://core.telegram.org/methods
【讨论】:
【参考方案3】:这个对我有用:
try
Intent telegram = new Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/USER_NAME"));
telegram.setPackage("org.telegram.messenger");
startActivity(telegram);
catch (Exception e)
Toast.makeText(getContext(), "Telegram app is not installed", Toast.LENGTH_LONG).show();
提示:您可以通过单击您的电报配置文件选项来获取 USER_NAME,您将在帐户会话中获得用户名选项 --> 如果用户名没有,则创建唯一的用户名并在这里为我工作。
【讨论】:
【参考方案4】:这个对我有用:
//在运行此代码之前检查是否先安装了应用程序。
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("http://telegram.me/+UT_USER_ID_HERE"));
final String appName = "org.telegram.messenger";
i.setPackage(appName);
this.startActivity(i);
【讨论】:
以上是关于Android - 向特定号码发送电报消息的主要内容,如果未能解决你的问题,请参考以下文章