下载
来源:互联网 发布:java安装失败1335 编辑:程序博客网 时间:2024/04/30 04:51
1.xutils依赖
compile 'org.xutils:xutils:3.3.36'
2.布局:button按钮<Button android:id="@+id/bt_download" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/bt_upload" android:text="下载"/>3.代码
NetWorkUtils 工具类:
public class NetWorkUtils { //判断网络状态 public static boolean isNetWorkIsAvailable(Context context){ ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = connectivityManager.getActiveNetworkInfo(); if (info != null){ return true; }else{ return false; } } //判断wifi public static boolean isWifi(Context context){ ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = connectivityManager.getActiveNetworkInfo(); if (info != null && info.getType() == connectivityManager.TYPE_WIFI){ return true; }else{ return false; } } //判断流量 public static boolean isMobile(Context context){ ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = connectivityManager.getActiveNetworkInfo(); if (info!=null&&info.getType() ==connectivityManager.TYPE_MOBILE){ return true; }else{ return false; } }}xutils appliction
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(true); }}记得要在清单文件注册
AndroidManifest.xml
android:name=".app.MyApp"mainactivity
package com.bawei.jiangjun.activity;import android.content.DialogInterface;import android.content.Intent;import android.net.Uri;import android.os.Environment;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.Button;import android.widget.ListView;import android.widget.Toast;import com.bawei.jiangjun.R;import com.bawei.jiangjun.base.Base;import com.bawei.jiangjun.bean.Bean;import com.bawei.jiangjun.utils.NetWorkUtils;import com.google.gson.Gson;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.x;import java.io.File;import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button xiazai; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xiazai = (Button) findViewById(R.id.xiazai); xiazai.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.xiazai: boolean workIsAvailable = NetWorkUtils.isNetWorkIsAvailable(MainActivity.this); if (!workIsAvailable) { Toast.makeText(MainActivity.this, "网络未连接,请设置网络", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); startActivity(intent); } else { //连接成功下载 Toast.makeText(MainActivity.this, "网络连接成功", Toast.LENGTH_SHORT).show(); download(); } break; } } //下载 private void download() { final String[] items = {"wifi", "手机流量"}; new AlertDialog.Builder(this).setTitle("网络选择").setIcon(R.mipmap.ic_launcher).setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch (which) { case 0: //wifi下 下载apk downloadApk(); break; case 1: //手机流量下提醒用户 boolean mobile = NetWorkUtils.isMobile(MainActivity.this); if (mobile) { Toast.makeText(MainActivity.this, "现在未使用wifi,将耗用手机流量", Toast.LENGTH_SHORT).show(); Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS"); startActivity(wifiSettingsIntent); } dialog.dismiss(); break; } dialog.dismiss(); } }).show(); } //下载apk private void downloadApk() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("版本更新"); builder.setMessage("现在检测到新版本,是否更新?"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { updateApk(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.show(); } //版本更新 private void updateApk() { String url = "http://mapp.qzone.qq.com/cgi-bin/mapp/mapp_subcatelist_qq?yyb_cateid=-10&categoryName=%E8%85%BE%E8%AE%AF%E8%BD%AF%E4%BB%B6&pageNo=1&pageSize=20&type=app&platform=touch&network_type=unknown&resolution=412x732"; RequestParams params =new RequestParams(url); params.setCacheMaxAge(1000 * 60 * 10); x.http().get(params, new Callback.CacheCallback<String>() { private String result = null; @Override public boolean onCache(String result) { this.result = result; Toast.makeText(MainActivity.this,"走缓存",Toast.LENGTH_SHORT).show(); //默认false不走缓存 true 走缓存 过期之后就不走缓存 getGson(result); return true; } @Override public void onSuccess(String result) { if (result != null) { this.result = result; Toast.makeText(MainActivity.this,"调用",Toast.LENGTH_SHORT).show(); getGson(result); } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } private void getGson(String result) { String substring = result.substring(0, result.length() - 1); Gson gson=new Gson(); Bean bean = gson.fromJson(substring, Bean.class); final List<Bean.AppBean> app = bean.getApp(); final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("点击下载"); View view=View.inflate(this,R.layout.listview,null); ListView listView = (ListView) view.findViewById(R.id.list); listView.setAdapter(new Base(this,app)); builder.setView(view); builder.setNegativeButton("后台下载", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.show(); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { RequestParams params = new RequestParams(app.get(position).getUrl()); String s = Environment.getExternalStorageDirectory() + "/bawei/"; File file=new File(s); if (!file.exists()){ file.mkdir(); } //保存到sdcard params.setSaveFilePath(Environment.getExternalStorageDirectory() + "/bawei/"); //自动文件命令 params.setAutoRename(true); //下载 x.http().post(params, new Callback.ProgressCallback<File>() { @Override public void onWaiting() { } @Override public void onStarted() { } @Override public void onLoading(long total, long current, boolean isDownloading) { } @Override public void onSuccess(File result) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(result), "application/vnd.android.package-archive"); startActivity(intent); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { Toast.makeText(MainActivity.this,"取消",Toast.LENGTH_SHORT).show(); } @Override public void onFinished() { } }); Toast.makeText(MainActivity.this,"正在下载请稍后......",Toast.LENGTH_SHORT).show(); } }); }}
0 0
- 下载
- 下载
- 下载
- 下载
- 下载???
- 下载
- 下载
- 下载
- 下载
- 下载
- 下载
- 下载
- 下载
- 下载
- 下载
- 下载
- 下载
- 下载
- VS2010中编译openssl的步骤和使用设置
- web项目导入eclipse出错解决
- PythonPi基于人脸检测的行车控制-PythonPi的目标驱动型控制
- mysql语句执行效率定位
- P2P、P2C 、O2O 、B2C、B2B、 C2C是什么
- 下载
- RabbitMQ 安装和配置
- ubuntu apt 代理设置
- C++对象模型
- 九度OJ-题目1170:找最小数-10计院上机B
- Desk Top
- 改善代码的设计
- 华为2017年实习招聘上机题
- Java_log2000_重载函数之前的栗子再扩展