我要求在除android市场或任何其他应用商店之外的一个公共网站上托管我的.apk
文件。在Android市场中,在注册到市场后,下载的.apk
将自动安装在移动设备上而无需任何手动操作。因此,我愿意创建一个URL并将.apk
文件托管到该文件中,并希望将.apk
下载到android手机中,并且必须自动安装。
我怎么能这样做....如果有任何代码或链接重新分配这个,请分享。
答案 0 :(得分:5)
如果Android设备已选中设置 - >应用程序 - >未知来源,Android将允许安装.apk
。如果没有检查 - 你就不会成功。
假设选中了复选栏并且您已下载.apk
文件。您可以运行下一个代码来触发安装:
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(apkFileName));
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);
答案 1 :(得分:2)
{
String url = "http://www.server.com/yourapp.apk";
String PATH = Environment.getExternalStorageDirectory() + "/download/";
File file = new File(PATH);
file.mkdirs();
File outputFile = new File(file, "yourapp.apk");
downloadFile(url, outputFile);
installApp(context);
}
private static void downloadFile(String url, File outputFile) {
try {
URL u = new URL(url);
URLConnection conn = u.openConnection();
int contentLength = conn.getContentLength();
DataInputStream stream = new DataInputStream(u.openStream());
byte[] buffer = new byte[contentLength];
stream.readFully(buffer);
stream.close();
DataOutputStream fos = new DataOutputStream(new FileOutputStream(outputFile));
fos.write(buffer);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
Log.e("FileNotFoundException",e+"");
return;
} catch (IOException e) {
Log.e("IOException",e+"");
return;
}
}
private static void installApp(Context mycontext) {
Intent installer = new Intent();
installer.setAction(android.content.Intent.ACTION_VIEW);
String PATH = "file://" + Environment.getExternalStorageDirectory() + "/download/yourapp.apk";
installer.setDataAndType(Uri.parse(PATH), "application/vnd.android.package-archive");
mycontext.startActivity(installer);
}