上傳 下載

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() {

            }
        });


    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章