17

我正在尝试从我的 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();
    }
}
4

4 回答 4

11

您不能发送到特殊号码,但您可以通过 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。

于 2017-05-29T10:48:40.843 回答
6

Telegram Android 应用程序无法直接向电报用户发送消息,因此如果您使用共享意图,您将获得电报/任何其他应用程序想要对共享消息执行的操作。在这种情况下,打开联系人列表将这条消息发送给他。

如果您想直接向 Telegram 用户发送消息,您应该使用 Telegram API https://core.telegram.org/api#getting-started

一旦您在应用程序中配置了 API 密钥,您就可以使用这些方法发送消息、阅读它们甚至获取电报联系人

https://core.telegram.org/methods

于 2015-05-05T14:41:24.803 回答
2

这个对我有用:

    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,您将在帐户会话中获得用户名选项 --> 如果用户名没有,则创建唯一的用户名并在这里为我工作。

于 2021-03-19T10:44:13.793 回答
0

这个对我有用:

//在运行此代码之前检查是否首先安装了应用程序。

 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);
于 2017-04-03T12:33:13.957 回答