如何通过点击按钮从一个Android应用程序下载.apk文件?

时间:2014-01-15 05:07:21

标签: android eclipse

我有一个Android应用程序,其中有一个Button,允许从Web服务器下载.apk文件。网站上有一个网站,并且.apk文件被上传到这个网站,比如网站是http://xxx,而.apk文件存储在一个文件夹里,Games/Apk/demo.apk。现在我想从我的应用程序.apk下载这个MYAPP1文件,有一个按钮,然后我想将.apk文件从服务器下载到我的设备SD卡上 我怎样才能做到这一点? I tried giving http://xxx/Games/Apk/myApp.apk但它不起作用。
你能告诉我如何下载.apk文件吗?
我还要在我的网站和我的应用程序中做些什么?

提前谢谢你...... :)

2 个答案:

答案 0 :(得分:0)

方法1。 尝试将浏览器嵌入链接并直接从服务器下载。这是实现这一目标的一种简洁方法。

    WebView  webView = ((WebView)findViewById(R.id.webview));
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginsEnabled(true); //plugins/flash
webView.loadUrl(url);

方法2。 你也可以有一个获取请求来提供这个apk文件,然后点击你的按钮可以在AsyncTask中发送文件。在互联网上有很多这样的例子。

2.1 存储在SD卡上

File path = Environment.getExternalStorageDirectory();

2.2 写入文件

    FileOutputStream fop = openFileOutput(“my_file”, Context.MODE_PRIVATE);  
fop.write(“Data to be written”.getBytes());
fop.flush();
fop.close();

2.3 异步任务Http请求

Android HTTP Request AsyncTask

答案 1 :(得分:0)

我们可以将浏览器嵌入到可以从服务器下载的应用程序中...... 假设我们有webcontent.xml,如下所示

<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

假设我们的网络活动如下

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class WebActivity extends Activity {

    private WebView webView;

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.webcontent);

        webView = (WebView) findViewById(R.id.webView);

        webView.getSettings().setJavaScriptEnabled(true);

        webView.loadUrl("http://www.apkdwonloadlink.com");


    }

}

我们可以从Mainactivity调用如下

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    private Button button;

    public void onCreate(Bundle savedInstanceState) {
        final Context context = this;

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button = (Button) findViewById(R.id.buttonUrl);

        button.setOnClickListener(new OnClickListener() {

          @Override
          public void onClick(View arg0) {
            Intent intent = new Intent(context, WebActivity.class);
            startActivity(intent);
          }

        });
    }
}

请为互联网上的清单添加权限

<uses-permission android:name="android.permission.INTERNET" />