2012-08-31 49 views
7
  1. 首先我有一个server.I检查服务器是否有任何new apk文件我下载并尝试安装。
  2. 如果服务器有new version of apk file那么我想更新我的.apk文件
  3. 我想安装/更新无需用户交互。是否有可能?
  4. 如果需要用户交互,那么我该如何安装/更新.apk文件。

我对此没有多少想法。听从服务器更新ans安装

Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "jarviz.apk")), "application/vnd.android.package-archive"); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

但这不是working.WHen我调试我看不到任何错误,但它不install.How我能为英语不好做that.Sorry。

+3

为什么你不使用Play商店分发你的应用程序?它会照顾你所有的这一切。据我所知,没有用户交互的情况下安装应用程序是没有办法的,我不认为你可以通过程序来完成。要么是一个巨大的安全问题。 –

+0

公平警告:如果不想使用Google Play并将apk安装到公众场合,可能会有人拿你的apk,解压并自行重新发布。 – jnthnjns

+0

@Asok你说在Google Play上使用它可以在这个主题上有所作为? :) –

回答

5

我这样解决了这个问题。

String vsName=Environment.getExternalStorageDirectory().getAbsolutePath()+"/download/"; 
File file = new File(vsName, "jarviz.apk"); 
System.out.println(":"+file); 
Intent install=new Intent(Intent.ACTION_VIEW); 
install.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); 
install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(install); 
+0

你能解释一下我的代码吗? – hemant

0

你的代码几乎是正确的,但你刚刚创建了这个意图。您还需要启动它作任何效果:

startActivity(intent); 

,并确保您下载的外部存储设备上jarviz.apk确实download/文件夹,你是指它的意图。

+1

@ WebnetMobile.com我已经检查。我得到了这个错误。 android.content.ActivityNotFoundException:没有找到处理Intent的活动{act = android.intent.action.VIEW typ = application/vnd.android.package-archive flg = 0x10000000}让我知道。 – Maidul