在 android 中打开电报频道
Open telegram channel in android
在我的应用程序中想要使用 Intent
打开特定的电报频道或电报组。我在 SF 中搜索但找不到 anything.i 尝试实施但我只能打开用户可以选择的所有 Messenger 应用程序,但不能打开电报或特定电报组或频道。如果在 sf 上找到 但它不是我问题的答案。
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"));
打开 Telegram 频道或用户的意图:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tg://resolve?domain=partsilicon"));
startActivity(intent);
首先检查是否安装了电报客户端(电报信使或电报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!!
}
Java @Saurabh Padwekar 的回答版本!
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;
}
@Saurabh Padwekar 的回答很好,但我想告诉你你可能 need add queries for Android SDK 30+ 是这样的:
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="tg" />
</intent>
</queries>
这将是一个更完整的答案:
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(telegramLink));
PackageManager pm = getPackageManager();
if (intent.resolveActivity(pm) != null) {
startActivity(intent);
} else {
Toast.makeText(context, "Error message", Toast.LENGTH_LONG).show();
}
} catch (Exception ignored) {
}
在我的应用程序中想要使用 Intent
打开特定的电报频道或电报组。我在 SF 中搜索但找不到 anything.i 尝试实施但我只能打开用户可以选择的所有 Messenger 应用程序,但不能打开电报或特定电报组或频道。如果在 sf 上找到
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"));
打开 Telegram 频道或用户的意图:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tg://resolve?domain=partsilicon"));
startActivity(intent);
首先检查是否安装了电报客户端(电报信使或电报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!!
}
Java @Saurabh Padwekar 的回答版本!
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;
}
@Saurabh Padwekar 的回答很好,但我想告诉你你可能 need add queries for Android SDK 30+ 是这样的:
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="tg" />
</intent>
</queries>
这将是一个更完整的答案:
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(telegramLink));
PackageManager pm = getPackageManager();
if (intent.resolveActivity(pm) != null) {
startActivity(intent);
} else {
Toast.makeText(context, "Error message", Toast.LENGTH_LONG).show();
}
} catch (Exception ignored) {
}