Android – отправить сообщение Telegram на определенный номер

Я пытаюсь отправить сообщение 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(); } } 

Solutions Collecting From Web of "Android – отправить сообщение Telegram на определенный номер"

Приложение Telegram Android не имеет возможности отправлять сообщения непосредственно пользователям телеграммы, поэтому, если вы используете намерение общего доступа, вы получите то, что телеграмма / любое другое приложение будет делать с общим сообщением. В этом случае откройте список контактов, чтобы отправить ему это сообщение.

Если вы хотите отправлять сообщения непосредственно пользователям Telegram, вы должны использовать API Telegram https://core.telegram.org/api#getting-started

Как только вы настроили свой ключ API в своем приложении, вы можете отправлять сообщения, читать их или даже получать контакты с этими тегами

https://core.telegram.org/methods

Это работало для меня:

// проверяем, установлено ли приложение перед запуском этого кода.

  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); 
 try { telegramIntent = new Intent(Intent.ACTION_VIEW); telegramInetnt.setData(Uri.parse("http://telegram.me/+userNameInTelegram")); startActivity(telegramIntent); } catch (Exception e) { // show error message } 

Этот код покажет пользователю предупреждение для выбора приложений, которые поддерживают телеграмму uri, например, Telegram и Mobogram!

Совет. Не устанавливайте имя пакета. Некоторые люди устанавливают альтернативы телеграмм, такие как mobogram.