2015-05-05 12 views
7

Sto tentando di inviare un messaggio Telegram a un numero specifico dalla mia app Android. In questo momento il mio codice avvia l'app Telegram, quindi l'utente deve selezionare il destinatario. Quello che voglio fare è inviare il messaggio al numero specificato, senza che l'utente selezioni il contatto. Il mio codice è il seguente:Android - Invia messaggio Telegram a un numero specifico

/** 
* 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

Ho fatto qualcosa di simile usando un intento 'eMail' (apre un selettore - Telegram è elencato), che posso rendere predefinito, alla fine. Invio anche allegati opzionali (0, 1 o 2 - a seconda delle scelte dell'utente). Uso l'indirizzo e-mail del destinatario. –

+0

Non sono sicuro che sia possibile farlo poiché Telegram utilizza l'elenco dei contatti del telefono e non ha un _Type un nuovo numero per chattare con_ funzione da sola – KM11

+0

ho provato. Funziona. –

risposta

5

The Telegram Android App non ha un modo per inviare messaggi direttamente agli utenti telegramma, quindi se si utilizza la condivisione intento, si otterrà quello telegramma/qualsiasi altra applicazione vuole fare con il messaggio condiviso. In questo caso, apri l'elenco dei contatti per inviare questo messaggio a lui.

Se si desidera inviare messaggi direttamente agli utenti Telegram si dovrebbe utilizzare l'API Telegram https://core.telegram.org/api#getting-started

una volta aver configurato la chiave API nella vostra app, è possibile inviare messaggi, leggere o persino ottenere i contatti telegramma con questi metodi

https://core.telegram.org/methods

0

Questo ha funzionato per me:

// verifica se l'applicazione è stata installata prima eseguendo questo codice.

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

Non è possibile inviare al numero di speciale, ma si può fare questo 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 
} 

Questo codice mostrerà all'utente un avviso per la scelta di applicazioni che supportano telegramma URI come telegramma stesso e Mobogram!

Suggerimento: non impostare il nome del pacchetto. alcune persone installano alternative di telegramma come il mobogramma.

+1

Come posso ottenere il nome utente dell'utente? – NehaK

Problemi correlati