我有一个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文件吗?
我还要在我的网站和我的应用程序中做些什么?
提前谢谢你...... :)
答案 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请求
答案 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" />