1.xutils依賴
compile 'org.xutils:xutils:3.3.36'
2.佈局:button按鈕
<Button android:id="@+id/bt_upload" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上傳"/> <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
public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 Button bt_upload = (Button) findViewById(R.id.bt_upload); Button bt_download = (Button) findViewById(R.id.bt_download); bt_upload.setOnClickListener(this); bt_download.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.bt_upload: loadPic();//上傳圖片 break; case R.id.bt_download: boolean workIsAvailable = NetWorkUtils.isNetWorkIsAvailable(MainActivity.this); if (!workIsAvailable){ Toast.makeText(this, "網絡未連接,請及時連接", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); startActivity(intent); }else{ //連接成功 Toast.makeText(this, "網絡連接成功", Toast.LENGTH_SHORT).show(); downLoad(); } break; } } //下載 private void downLoad(){ 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: 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); } break; } dialog.dismiss(); } }).show(); } //下載apk private void downloadApk(){ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.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.create(); builder.show(); } //版本更新 private void updateApk(){ String url = "http://imtt.dd.qq.com/16891/3B9164274F34F47DF2BEFF1FF4E3F064.apk?fsname=com.tencent.mobileqq_6.7.0_496.apk&csr=97c2"; RequestParams params = new RequestParams(url); //保存到sd卡 params.setSaveFilePath(Environment.getExternalStorageDirectory()+"/bawei/"); //自動文件命令 params.setAutoRename(true); //下載 x.http().post(params, new Callback.ProgressCallback<File>() { @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) { } @Override public void onFinished() { } @Override public void onWaiting() { } @Override public void onStarted() { } @Override public void onLoading(long total, long current, boolean isDownloading) { } }); } //上傳圖片 public void loadPic() { String url = "http://imtt.dd.qq.com/16891/3B9164274F34F47DF2BEFF1FF4E3F064.apk?fsname=com.tencent.mobileqq_6.7.0_496.apk&csr=97c2"; String imagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "a.jpg"; RequestParams params = new RequestParams(url); params.setMultipart(true); //把圖片轉換成file 做爲參數上傳 params.addBodyParameter("file", new File(imagePath)); x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Toast.makeText(MainActivity.this, "上傳成功", Toast.LENGTH_SHORT).show(); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } }