如何通过点击按钮从一个Android应用程序下载.apk文件?
我有一个Android应用程序,其中有一个按钮,可以从web服务器下载如何通过点击按钮从一个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但它不起作用。 你们能告诉我如何下载
.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。尝试将浏览器嵌入应用程序,并直接从服务器下载。这是一个干净的方法来实现这一点。