2016-12-26 12 views
1

Мой код устанавливает apk из папки загрузки с помощью pm install (root). Проблема в том, что после установки приложения мне нужно запустить установленное приложение автоматически. Как мне это сделать?Как запустить приложение после его установки?

File sdCard = Environment.getExternalStorageDirectory(); 
    String fileStr = sdCard.getAbsolutePath() + "/download";// + 
                  // "app-release.apk"; 

    File file = new File(fileStr, "xadb-build.apk"); 

    if (file.exists()) { 
     try { 
      String command; 
      command = "pm install -r " + file; 
      Process proc = Runtime.getRuntime().exec(
        new String[] { "su", "-c", command }); 
      proc.waitFor(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

} 

ответ

0

Вы можете зарегистрировать вещательный приемник для действий PACKAGE_INSTALLED, на в этом приемнике можно написать логику для запуска, что старт деятельности приложения

public class InstallReceiver extends BroadcastReceiver { 

     public InstallReceiver() 
     { 

     } 
     @Override 
     public void onReceive(Context context, Intent intent) { 

      Log.d("InstallReceiver", "Install detected."); 
      String packageName = intent.getPackage(); 

      if ("your_app_packageName".equalsIgnoreCase(packageName)) { 
       try { 
        Intent i = ctx.getPackageManager().getLaunchIntentForPackage(packageName); 
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        ctx.startActivity(i); 
       } catch (NameNotFoundException e) { 
        // TODO Auto-generated catch block 
       } 
      } 
     } 

    } 
+0

спасибо, где я называю этот кусок кода? –

+0

@badmom вы можете зарегистрировать широковещательный приемник для Action PACKAGE_INSTALLED, поэтому, как только ваше приложение будет установлено, вы получите эту трансляцию и в этом ресивере вы можете запустить приложение –