在android中打开电报频道

时间:2016-01-09 10:05:24

标签: android telegram

在我的应用中,我想使用Intent打开特定的电报频道或电报组。我在SF搜索,但我找不到任何东西。我尝试实施,但我只能打开用户可以选择但不是电报或特定电报组或频道的所有信使应用程序。如果在sf上找到this,但它没有回答我的问题。

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

4 个答案:

答案 0 :(得分:25)

打开电报频道或用户的意图:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tg://resolve?domain=partsilicon"));
            startActivity(intent);

答案 1 :(得分:2)

首先检查是否安装了任何电报客户端(电报信使或电报x)。如果没有在浏览器中打开它。

fun telegramIntent(context: Context): Intent {
    var intent: Intent? = null
    try {
        try {
           context.packageManager.getPackageInfo("org.telegram.messenger", 0)//Check for Telegram Messenger App
        } catch (e : Exception){
           context.packageManager.getPackageInfo("org.thunderdog.challegram", 0)//Check for Telegram X App
        }
       intent = Intent(Intent.ACTION_VIEW, Uri.parse("tg://resolve?domain=${TELEGRAM_PAGE_ID}"))
    }catch (e : Exception){ //App not found open in browser
       intent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.telegram.me/$TELEGRAM_PAGE_ID"))
    }
   return intent!!
}

答案 2 :(得分:2)

回答@Saurabh Padwekar 很好,但我想告诉您,您可能need add queries for Android SDK 30+ 是这样的:

<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="tg" />
    </intent>
</queries>

答案 3 :(得分:1)

@Saurabh Padwekar 答案的 Java 版本!

  Intent getTelegramInt(Context context) {
        Intent intent;
        try {
            try { // check for telegram app
                context.getPackageManager().getPackageInfo("org.telegram.messenger", 0);
            } catch (PackageManager.NameNotFoundException e) {
                // check for telegram X app
                context.getPackageManager().getPackageInfo("org.thunderdog.challegram", 0);
            }
            // set app Uri
            intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tg://resolve?domain=${TELEGRAM_PAGE_ID}"));
        } catch (PackageManager.NameNotFoundException e) {
            // set browser URI
            intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.telegram.me/$TELEGRAM_PAGE_ID"));
        }
        return intent;
    }