2014-01-15 26 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" />