Intereting Posts
Gson десериализует вложенные объекты с помощью InstanceCreator Цветовой диапазон только для Android 4.0+ Использование NanoHTTPD в Android Как я могу исправить все, что вызывает это, чтобы нагрузить мой logcat: I / System.out: (HTTPLog) -Static: isSBSettingEnabled false Обмен изображениями и текстом с помощью Facebook на Android Меню Упорядочение различий из-за иерархии фрагментов и активности. (onCreateOptionsMenu) Отображать направление места со стрелкой в ​​Android ListView Как использовать стандартный атрибут android: текст в моем пользовательском представлении? Любое преимущество программирования для мобильной разработки? 1×1 Android Widget показывает как 2×2 виджет на экране WXGA720 OnBackPressed to hide Не уничтожать активность Использование пользовательского цвета для фона кнопки при использовании атрибута selectableItemBackground В чем разница между андроидом: lineSpacingExtra и android: lineSpacingMultiplier? Как обрабатывать AsyncTask onPostExecute при приостановке, чтобы избежать исключения IllegalStateException Phonegap (3.0.0) Камера не удалась с первой попытки

Как отправить намерение с помощью телеграммы

Я пытаюсь создать класс в java, который управляет различными приложениями для совместного использования. Класс основан на намерениях Android.

Но когда я пытаюсь выполнить намерение Telegram, оно не находит приложение.

Здесь я поставил код, который я написал:

public void shareTelegram(String message) { Intent waIntent = new Intent(Intent.ACTION_SEND); waIntent.setType("text/plain"); waIntent.setPackage("com.telegram"); if (waIntent != null) { waIntent.putExtra(Intent.EXTRA_TEXT, message);// _androidActivity.startActivity(Intent.createChooser(waIntent, "Share with")); } else { Toast.makeText(_androidActivity.getApplicationContext(), "Telegram is not installed", Toast.LENGTH_SHORT).show(); } } 

Где можно найти имя пакета? Заранее спасибо.

Solutions Collecting From Web of "Как отправить намерение с помощью телеграммы"

Все Android-приложения имеют уникальный идентификатор, идентификатор рынка. Если вы посмотрите в Google Play или на поисковый рынок google: // details? Id = org.telegram, он отправит вас

 https://play.google.com/store/apps/details?id=org.telegram.messenger 

Если вы отправляете намерение с помощью:

 waIntent.setPackage("org.telegram.messenger"); 

Это будет работать.

Если вы предпочитаете немного сложную систему, я рекомендую вам использовать:

 /** * 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(); } } 

И проверьте, установлено ли с:

 /** * Indicates whether the specified app ins installed and can used as an intent. This * method checks the package manager for installed packages that can * respond to an intent with the specified app. If no suitable package is * found, this method returns false. * * @param context The application's environment. * @param appName The name of the package you want to check * * @return True if app is installed */ public static boolean isAppAvailable(Context context, String appName) { PackageManager pm = context.getPackageManager(); try { pm.getPackageInfo(appName, PackageManager.GET_ACTIVITIES); return true; } catch (NameNotFoundException e) { return false; } } 

Для открытия канала телеграммы:

 Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse("http://telegram.me/shes_ir")); final String appName = "org.telegram.messenger"; try { if (isAppAvailable(mainActivity.getApplicationContext(), appName)) i.setPackage(appName); } catch (PackageManager.NameNotFoundException e) {} mainActivity.startActivity(i); 
 > **//open telegram directly without intent to specify id.** Intent telegram = new Intent(android.content.Intent.ACTION_SEND); telegram.setData(Uri.parse("http://telegram.me/myId")); telegram.setPackage("org.telegram.messenger"); Test.this.startActivity(Intent.createChooser(telegram, "Share with"));