Android应用程序自动启动

问题描述:

我正在使用adb命令在Android手机中成功安装.APK文件。现在我想在安装时启动应用程序,我的意思是.apk文件安装在手机中,然后运行.Apk文件自动运行。请指导我.. 在此先感谢...Android应用程序自动启动

答案是否定的,你根本无法做到这一点。安装后用户应手动启动您的应用程序。

有一种方法 - 首先安装一个应用程序,它将监控apk安装并启动它们。但它需要一个单独的应用程序。

编辑:这也不再适用于冰淇淋三明治。

+0

我怎样才能做到这一点,请给我的提示或例如链接之前刚开始AlarmManager。请帮助我 – user594746 2011-02-02 07:39:54

如果apk是你的(由你制作的),你可以通过接收系统的BOOT_COMPLETE动作让你的应用程序启动。 希望它对你有用。

+0

即使此解决方案在用户首次启动应用程序(自Android 3.1以后)之前也无法运行。看到这里: http://commonsware.com/blog/2011/07/05/boot-completed-regression.html – 2012-10-27 21:29:53

这是可能的。你可以通过报警管理器来完成。

执行命令

public void installApp(Context context) { 

     Intent receiverIntent = new Intent(context, AlarmReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(
       context.getApplicationContext(), 234324243, receiverIntent, 0); 
     AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE); 
     alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() 
       + 1000 * 10, pendingIntent); 

     File file = new File(Shared.getInstance().getApkDirectory()); 
     if (file.exists()) { 
      try { 
       final String command = "pm install -r " + file.getAbsolutePath(); 
       Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command}); 
       Shared.getInstance().showToast(context, "before wait"); 
       proc.waitFor(); 


      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 
    } 

寄存器广播reciver清单中

public class AlarmReceiver extends BroadcastReceiver { 

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

     Intent i = new Intent(context, yourActivity.class); 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
    } 
}