2016-12-26 11 views
1

내 코드는 pm install (root)을 사용하여 다운로드 폴더에서 apk를 설치합니다. 문제는 앱을 설치 한 후 설치된 앱을 자동으로 실행해야한다는 것입니다. 어떻게해야합니까?앱을 설치 한 후 앱을 시작하려면 어떻게해야합니까?

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

당신은 수신기에서 당신이 응용 프로그램의 실행 활동 것을 나는이 코드 조각 부르지

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

감사를 시작하기위한 논리를 쓸 수에, 액션 PACKAGE_INSTALLED을위한 방송 수신기를 등록 할 수 있습니다? –

+0

@badmom PACKAGE_INSTALLED 액션에 대한 브로드 캐스트 리시버를 등록 할 수 있으므로 앱이 설치되면이 브로드 캐스트를 수신하고 리시버에서 애플리케이션을 시작할 수 있습니다 –