批量安装App的问题!求大神解惑!

a1540077373 2012-10-07 12:38:04

public void installApps(Iterator<String> pathIt){
while(pathIt.hasNext()){
String apkPath=pathIt.next();
File apkFile=new File(apkPath);

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(apkFile),
"application/vnd.android.package-archive");
startActivity(intent);

Log.v("result", apkFile.getName()+"安装成功");
}
}


以上代码的目的是为了批量安装apk,但问题是:只要调用此方法,就会启动所有apk安装Activity,结果是一个apk未安装,循环就已经全部完成了。我需要的是:当代码执行到startActivity(intent)这句时,代码暂停往下执行,知道程序安装成功,或者用户点击取消后,再继续执行代码。我尝试过以下方法:
1.就是直接用上面的方法;
2.使用startActivityForResult()方法,而且返回值似乎都是0;
3.监听软件安装广播,当接收到广播后再进行下一个迭代,但这样只能确定用户点击确定并成功安装、替换软件,如果用户点击取消就不行,因为取消似乎没有广播,或者是我不知道。
4.静默安装(PM 命令)......这个就不说了,行是行,但需要高权限吧!如果没有权限就成浮云了!
5.静默安装(利用系统隐藏API)......这似乎也存在权限问题,也似乎会出现兼容问题,谁叫搞android系统那么多?
6.这点是最重要滴,也就是大神们的解答了!!!!!!!小弟先在此谢过了。
...全文
207 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
HHLgolden110 2012-10-07
  • 打赏
  • 举报
回复
大概思路:循环里面用线程执行安装,用反射机制调用隐藏api,监听安装是否成功,安装完成后发送消息到handler,handler里面用一个全局int变量来判断是否全部安装完成

80,364

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧