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

如何通过点击按钮从一个Android应用程序下载.apk文件?,android,eclipse,Android,Eclipse,我有一个Android应用程序,其中有一个按钮,可以从web服务器下载.apk文件。网站上有一个网站,并且.apk文件被上传到此网站,比如说该网站是http://xxx和.apk文件存储在一个文件夹中,比如说,Games/apk/demo.apk。现在我想从我的应用程序中下载这个.apk文件,比如说MYAPP1,有一个按钮,单击一次我想从服务器下载.apk文件到我的设备SD卡 我该怎么做? 我试着给予http://xxx/Games/Apk/myApp.apk但它不起作用。 你们能告诉我如何下载

我有一个Android应用程序,其中有一个按钮,可以从web服务器下载
.apk
文件。网站上有一个网站,并且.apk文件被上传到此网站,比如说该网站是
http://xxx
和.apk文件存储在一个文件夹中,比如说,
Games/apk/demo.apk
。现在我想从我的应用程序中下载这个
.apk
文件,比如说
MYAPP1
,有一个按钮,单击一次我想从服务器下载.apk文件到我的设备SD卡
我该怎么做?
我试着给予http://xxx/Games/Apk/myApp.apk
但它不起作用。
你们能告诉我如何下载.apk文件吗。
在我的网站和我的应用程序中,我还需要做什么?

提前感谢您……:)

方法1. 尝试将浏览器嵌入链接并直接从服务器下载。这是一个干净的方法来实现这一点

    WebView  webView = ((WebView)findViewById(R.id.webview));
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginsEnabled(true); //plugins/flash
webView.loadUrl(url);
方法2. 您还可以有一个get请求来提供此apk文件,然后您的buton on click可以在异步任务中发送该文件。在互联网上有很多这样做的例子

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请求


我们可以在应用程序中嵌入浏览器,从服务器上下载它。。。 假设我们有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");


    }

}
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);
          }

        });
    }
}
我们可以从以下主要活动中调用

<?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");


    }

}
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);
          }

        });
    }
}
请在internet的清单上添加权限

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


您尝试将URL提供给什么?@Thorsten Dittmar我现在正在做的就是方法1。尝试将浏览器嵌入应用程序,并直接从服务器下载。这是一个干净的方法来实现这一点。