XUtil3.0下載

首先創建一個工程

導入XUtils3.0的依賴

compile 'org.xutils:xutils:3.3.36'
然後創建一個MyApp類在AndroidManifest.xml文件中註冊

public class MyApp extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        //初始化xutils3
        x.Ext.init(this);
        //false 不影響性能
        x.Ext.setDebug(true);
    }
}
導入權限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
再寫一個網絡判斷的Utils

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;
        }
       /* if (info.isConnected()) {
            return true;
        }*/


        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;
        }

        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;
        }

        return false;
    }
}
在MainActivity

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();
}
//下載
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.create();
    builder.show();




}


//版本更新
private void updateApk() {
    String url = "http://169.254.249.24:8080/08web/app.apk";
    RequestParams params = new RequestParams(url);
    //保存到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) {


        }


        @Override
        public void onFinished() {


        }
    });




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