2015-05-05 21 views
7

Próbuję wysłać wiadomość Telegram na określony numer z poziomu mojej aplikacji na Androida. Teraz mój kod uruchamia aplikację Telegram, a następnie użytkownik musi wybrać adres docelowy. Chcę tylko wysłać wiadomość pod wskazany numer, bez konieczności wybierania kontaktu przez użytkownika. Mój kod wygląda następująco:Android - Wyślij wiadomość Telegram pod określony numer

/** 
* 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(); 
    } 
} 
+0

Zrobiłem coś takiego, używając intencji 'eMail' (otwiera ona selektor - na liście znajduje się telegram), które ostatecznie mogę ustawić jako domyślną. Wysyłam także opcjonalne załączniki (0, 1 lub 2 - w zależności od wyboru użytkownika). Używam adresu e-mail odbiorcy. –

+0

Nie jestem pewien, czy możesz to zrobić, ponieważ Telegram używa twojej listy kontaktów w telefonie i nie ma _Type nowego numeru do czatowania z funkcją sam przez siebie – KM11

+0

Próbowałem. To działa. –

Odpowiedz

5

Telegram Android App nie posiada sposób wysyłania wiadomości bezpośrednio do użytkowników telegraficznie, więc jeśli używasz intencję zakładowego, dostaniesz co telegram/każda inna aplikacja chce zrobić z udostępnioną wiadomością. W takim przypadku otwórz listę kontaktów, aby wysłać do niego tę wiadomość.

Jeśli chcesz wysyłać wiadomości bezpośrednio do użytkowników telegram należy użyć telegramu API https://core.telegram.org/api#getting-started

Po skonfigurowaniu swój klucz API w swojej aplikacji, można wysyłać wiadomości, czytać je lub nawet dostać kontakty telegramów z tych metod

https://core.telegram.org/methods

0

Ten pracował dla mnie:

// sprawdzenie, czy aplikacja jest zainstalowana zanim uruchomienie tego kodu.

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); 
1

Nie można wysyłać do numeru specjalnego, ale można to zrobić przez 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 
} 

Ten kod pojawi się alert o wybranie aplikacji, które obsługują telegramów URI jak sama Telegram i Mobogram użytkownika!

Wskazówka: nie ustawiaj nazwy pakietu. niektórzy ludzie instalują alternatywne telegramy, takie jak mobogram.

+1

Jak mogę uzyskać nazwę użytkownika? – NehaK

Powiązane problemy