Android - 将 Telegram 消息发送到特定号码
Android - Send Telegram message to a specific number
我正在尝试从我的 Android 应用程序中向特定号码发送 Telegram 消息。现在我的代码启动 Telegram 应用程序,然后用户必须 select 目的地。我想做的是将消息发送到指定的号码,而不需要用户 select 联系人。我的代码如下:
/**
* 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();
}
}
Telegram Android 应用无法直接向电报用户发送消息,因此如果您使用共享意图,您将获得电报/任何其他应用想要对消息执行的操作共享。既然如此,就打开联系人列表,将这条消息发给他吧。
如果您想直接向 Telegram 用户发送消息,您应该使用 Telegram API
https://core.telegram.org/api#getting-started
一旦您在您的应用程序中配置了您的 API 密钥,您就可以使用这些方法发送消息、阅读它们甚至获取电报联系人
这个对我有用:
//检查在运行这段代码之前是否先安装了应用程序。
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);
你不能发送到特殊号码,但是你可以通过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。
这个对我有用:
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 您将在帐户会话中获得用户名选项 --> 如果用户名是 none 创建唯一的用户名并将它的工作放在这里。
尝试这样的意图
tg://resolve?domain=YOUR_USER_ID
比 https://t.me
更直接
我正在尝试从我的 Android 应用程序中向特定号码发送 Telegram 消息。现在我的代码启动 Telegram 应用程序,然后用户必须 select 目的地。我想做的是将消息发送到指定的号码,而不需要用户 select 联系人。我的代码如下:
/**
* 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();
}
}
Telegram Android 应用无法直接向电报用户发送消息,因此如果您使用共享意图,您将获得电报/任何其他应用想要对消息执行的操作共享。既然如此,就打开联系人列表,将这条消息发给他吧。
如果您想直接向 Telegram 用户发送消息,您应该使用 Telegram API https://core.telegram.org/api#getting-started
一旦您在您的应用程序中配置了您的 API 密钥,您就可以使用这些方法发送消息、阅读它们甚至获取电报联系人
这个对我有用:
//检查在运行这段代码之前是否先安装了应用程序。
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);
你不能发送到特殊号码,但是你可以通过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。
这个对我有用:
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 您将在帐户会话中获得用户名选项 --> 如果用户名是 none 创建唯一的用户名并将它的工作放在这里。
尝试这样的意图 tg://resolve?domain=YOUR_USER_ID 比 https://t.me
更直接