2016-03-01 11 views
4

У меня есть приложение для Android, которое должно быть в состоянии открыть чат в приложении телеграммы, нажав кнопку.
Я хочу открыть существующую страницу чата робота DIRECTLY из моего приложения. У меня есть действующий токен для моего робота. Как это можно достичь?Как запустить приложение Telegram из моего собственного приложения для Android?

Заранее спасибо.

робот имя: @InfotechAvl_bot

робот маркер: 179284 ***********

//------------- 
    case ContentFragment.lMenuTelegram: 
    Intent LaunchIntent=getPackageManager().getLaunchIntentForPackage("org.telegram.messenger"); 
    startActivity(LaunchIntent); 
      break; 
+0

надеется, что это поможет вам http://stackoverflow.com/questions/30055201/android-send-telegram-message-to-a-specific-number –

+0

на самом деле я не хочу отправлять сообщения, я хочу только открыть экран чата робота. – BoshRa

ответ

13

Я решил проблему. на самом деле вы должны открыть робот идентификатор с этим:

  Intent telegram = new Intent(Intent.ACTION_VIEW , Uri.parse("https://telegram.me/InfotechAvl_bot")); 
     startActivity(telegram); 
+0

Ты спас мой день! –

+0

Как получить имя пользователя друга? – NehaK

3

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

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

Надеюсь, это сработает для вас.