在我的应用中,我想使用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"));
答案 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;
}