Using Telegram to send a message

2020-07-14 10:30发布

问题:

I'm trying to send a message to a telegram-app user, but the intent opens only the telegram app - it don't choose a conctact and send the message:

public void shareTelegram(String message)
{
    Intent waIntent = new Intent(Intent.ACTION_SEND);

    waIntent.setType("text/plain");
    waIntent.setPackage("org.telegram.messenger");

    if (waIntent != null)
    {
        waIntent.putExtra(Intent.EXTRA_TEXT, message);//
        startActivity(Intent.createChooser(waIntent, "Daniel"));
    } 
    else 
    {
        Toast.makeText(getApplicationContext(), "Telegram is not installed", Toast.LENGTH_SHORT).show();
    }
}

Is there a way to send the message completely? Can I send the message completely without displaying telegram ?

回答1:

TLSharp is basic implementation of Telegram API on C#. See it here https://github.com/sochix/TLSharp



回答2:

Try this.

try {

            Toast.makeText(getApplicationContext(), "Sharing Via telegram !", Toast.LENGTH_LONG).show();
            Intent waIntent = new Intent(Intent.ACTION_SEND);
            waIntent.setType("image/*");
            waIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            PackageInfo info=pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA);//Check if package exists or not. If not then code

             waIntent.setPackage("org.telegram");  //package check whether telegram is installed
             waIntent.putExtra(Intent.EXTRA_TEXT, txt.getText().toString());//place your text here
             startActivity(Intent.createChooser(waIntent, "Share with"));
       } 
catch (PackageManager.NameNotFoundException e) 
{
            Toast.makeText(SingleItemView.this, "telegram not installed", Toast.LENGTH_SHORT).show();
}