No Description

UpgradeService.java 4.8KB

    package ai.pai.client.services; import android.app.IntentService; import android.content.Intent; import android.content.pm.PackageInfo; import android.net.Uri; import android.os.Handler; import android.os.Looper; import com.android.common.http.HttpUtils; import com.android.common.utils.JSONParseUtils; import com.android.common.utils.LogHelper; import org.json.JSONObject; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import ai.pai.client.R; import ai.pai.client.utils.Constants; import ai.pai.client.utils.ToastUtils; import ai.pai.client.utils.UrlContainer; /** * Created by chengzhenyu on 2015/9/2. */ public class UpgradeService extends IntentService { private static final String TAG = "UpgradeService"; private Handler handler; public UpgradeService() { super(TAG); handler = new Handler(Looper.getMainLooper()); } @Override protected void onHandleIntent(Intent intent) { boolean isMuteUpdate = intent.getBooleanExtra("isMuteUpdate",true); try{ String result = HttpUtils.doHttpPost(UrlContainer.CHECK_UPDATE_URL,null); LogHelper.d(TAG,"检查更新结果"+result); JSONObject json = new JSONObject(result); int status = json.getInt("status"); if(status!=200){ LogHelper.d(TAG,"检查更新失败"); if(!isMuteUpdate){ handler.post(new Runnable() { @Override public void run() { ToastUtils.showShortToast(getApplicationContext(), R.string.check_version_fail); } }); } return; } JSONObject data = json.getJSONObject("data"); JSONObject appInfo = data.getJSONObject("appinfo"); String latestVersionCode = JSONParseUtils.getJSONString(appInfo.getString("latest_version_code")); int versionCode = Integer.parseInt(latestVersionCode); PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(),0); if(versionCode<=packageInfo.versionCode){ LogHelper.d(TAG,"不需要更新"); if(!isMuteUpdate){ handler.post(new Runnable() { @Override public void run() { ToastUtils.showShortToast(getApplicationContext(), R.string.current_version_is_latest); } }); } return; } String latestVersionUrl = JSONParseUtils.getJSONString(appInfo.getString("latest_url")); URL url = new URL(latestVersionUrl); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setReadTimeout(10000); conn.setConnectTimeout(10000); conn.setRequestProperty("accept", "*/*"); conn.connect(); File dir = new File(Constants.APP_TEMP_DIR); dir.mkdirs(); File file = new File(dir,"paiai"+System.currentTimeMillis()+".apk"); LogHelper.d(TAG,"需要更新,开始下载,下载到:"+file.getAbsolutePath()); if(!isMuteUpdate){ ToastUtils.showShortToast(this, R.string.new_version_found); } if(!file.exists()){ file.createNewFile(); } FileOutputStream out = new FileOutputStream(file); InputStream in =conn.getInputStream(); int bufSize = 8192; int readLen = 0; int pos = 0; byte[] buffer = new byte[bufSize]; while((readLen=in.read(buffer,pos,bufSize-pos))!=-1){ out.write(buffer,pos,readLen); pos+=readLen; if(pos>=bufSize){ pos = 0; } } out.flush(); in.close(); out.close(); conn.disconnect(); Intent installIntent = new Intent(); installIntent.setAction(Intent.ACTION_VIEW); installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); installIntent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); startActivity(installIntent); }catch (Exception e){ if(!isMuteUpdate){ handler.post(new Runnable() { @Override public void run() { ToastUtils.showShortToast(getApplicationContext(), R.string.check_version_fail); } }); } } } }
kodo - Gogs: Go Git Service

説明なし

Brightcells: 4547c709bf Add api get_server_time_api 9 年 前
..
__init__.py 4547c709bf Add api get_server_time_api 9 年 前