Android应用程序自动启动
问题描述:
我正在使用adb命令在Android手机中成功安装.APK文件。现在我想在安装时启动应用程序,我的意思是.apk文件安装在手机中,然后运行.Apk文件自动运行。请指导我.. 在此先感谢...Android应用程序自动启动
答
答案是否定的,你根本无法做到这一点。安装后用户应手动启动您的应用程序。
有一种方法 - 首先安装一个应用程序,它将监控apk安装并启动它们。但它需要一个单独的应用程序。
编辑:这也不再适用于冰淇淋三明治。
答
如果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);
}
}
我怎样才能做到这一点,请给我的提示或例如链接之前刚开始AlarmManager。请帮助我 – user594746 2011-02-02 07:39:54