Android - 将电报消息发送到特定号码

fer*_*ral 13 java android telegram

我正在尝试从我的Android应用程序中向特定号码发送电报消息.现在我的代码启动Telegram应用程序,然后用户必须选择destinatary.我想要做的是将消息发送到指定的号码,而无需用户选择联系人.我的代码如下:

/**
 * 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 6

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

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

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

https://core.telegram.org/methods


小智 5

您无法发送到特殊号码,但是您可以通过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
}
Run Code Online (Sandbox Code Playgroud)

此代码将向用户显示有关选择支持电报uri(例如电报本身和Mobogram)的应用程序的警报!

提示:请勿设置软件包名称。有些人安装了电报替代品,如Mobogram。

  • 如何获取用户的用户名? (4认同)