2014-01-15 30 views
0

我有一个Android应用程序,其中有一个按钮,允许从Web服务器下载.apk文件。有一个网站托管在网上.apk文件上传到这个网站,说网站是http://xxx和.apk文件存储在一个文件夹说,Games/Apk/demo.apk。现在我想从我的应用程序下载这个.apk文件,如MYAPP1,有一个按钮和onclick我想从服务器上下载.apk文件到我的设备SD卡
我该怎么做? I tried giving http://xxx/Games/Apk/myApp.apk但它不起作用。
你可以请人告诉我如何下载.apk文件。
我还有什么要在我的网站和我的应用程序?

预先感谢您... :)如何通过点击按钮从一个Android应用下载.apk文件?

+0

您试过给URL提供什么? –

+0

@Thorsten Dittmar下面是我现在正在做的是[这里](http://stackoverflow.com/questions/21087229/unable-to-download-apk-file-from-remote-server-in-android ) – Sush19

回答

0

方法1. 尽量使嵌入浏览器进入链接,直接从服务器下载它。这是一个干净的方式来完成这一点。

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

方法2. 你也可以有一个GET请求来服务于这个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

方法1.尝试将浏览器嵌入到应用程序中并直接从服务器下载。这是一个干净的方式来完成这一点。 – Abs

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" /> 

假设我们webactivity如下

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

     }); 
    } 
} 

请在manifest中添加权限in ternet

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