Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "app.apk")), "application/vnd.android.package-archive");
startActivity(intent);
这是在这里找到的: 问题 [4967669] android-install-apk-programmatically
如果这样做,请使用 android服务,我收到以下错误消息:
05-03 08:24:14.559: E/AndroidRuntime(21288): 致命异常: Thread-1706 05-03 08:24:14.559: E/AndroidRuntime(21288): android.util.AndroidRuntimeException: 从外部调用 startActivity()一个活动上下文需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?
我添加了 FLAG_ACTIVITY_NEW_TASK:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
但现在什么也没有发生。没有错误,但也没有尝试安装 apk。我在想可能是因为它没有活动(因为它是一项服务)?
问题 是否可以通过android后台服务安装APK?(如果是的话)有人知道我该怎么做吗?
提前致谢
PS:根据我对服务的理解,它们非常像活动,所以不确定为什么这不起作用。