/** 将设备Token提交服务器 */ public void postDeviceTokenToServiceLocked() { DebugUtils.logD(TAG, "postDeviceTokenToServiceLocked()"); try { if (MyAccountManager.getInstance().hasLoginned() && !TextUtils.isEmpty(getDeviceTotke()) && !getDeviceTotkeStatus()) { InputStream is = NetworkUtils.openContectionLocked( HaierServiceObject.getUpdateDeviceTokenUrl( String.valueOf(MyAccountManager.getInstance().getAccountObject().mAccountUid), getDeviceTotke(), "android"), MyApplication.getInstance().getSecurityKeyValuesObject()); if (is != null) { HaierResultObject result = HaierResultObject.parse(NetworkUtils.getContentFromInput(is)); NetworkUtils.closeInputStream(is); saveDeviceTokenStatus(result.isOpSuccessfully()); DebugUtils.logD(TAG, result.toString()); } } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
@Override protected HaierResultObject doInBackground(Void... params) { HaierResultObject resultObject = new HaierResultObject(); mAccountObject = new AccountObject(); ; try { MyApplication.getInstance() .postAsync( new Runnable() { @Override public void run() { mStatusView.setText(R.string.msg_login_download_accountinfo_wait); } }); _is = NetworkUtils.openContectionLocked( HaierServiceObject.getLoginOrUpdateUrl(mTel, mPwd), null); resultObject = HaierResultObject.parse(NetworkUtils.getContentFromInput(_is)); if (resultObject.isOpSuccessfully()) { // 登录成功,我们解析登录返回数据 AccountParser.parseAccountData(resultObject.mJsonData, mAccountObject); if (mAccountObject != null && mAccountObject.hasUid()) { boolean saveAccountOk = MyAccountManager.getInstance() .saveAccountObject( LoginOrUpdateAccountDialog.this.getContentResolver(), mAccountObject); if (!saveAccountOk) { // 登录成功了,但本地数据保存失败,通常不会走到这里 resultObject.mStatusMessage = LoginOrUpdateAccountDialog.this.getString(R.string.msg_login_save_success); } } } } catch (ClientProtocolException e) { e.printStackTrace(); resultObject.mStatusMessage = e.getMessage(); } catch (IOException e) { e.printStackTrace(); resultObject.mStatusMessage = MyApplication.getInstance().getGernalNetworkError(); } catch (JSONException e) { e.printStackTrace(); resultObject.mStatusMessage = e.getMessage(); } finally { NetworkUtils.closeInputStream(_is); } return resultObject; }
/** * 该操作是一个阻塞联网操作,不能放在UI线程 Http://www.mingdown.com/cell/ adddownloadrecord.aspx?MM=下载的名片名号 * &&cell=下载人的默认本机号码 * * @param downloadedMm 下载的名片名号 * @param tel 下载人的默认本机号码 * @return */ public static boolean recordDownloadLocked(String downloadedMm, String tel) { DebugUtils.logD(TAG, "recordDownloadLocked downloadedMm=" + downloadedMm + " tel=" + tel); if (TextUtils.isEmpty(tel)) { DebugUtils.logD(TAG, "tel is empty, so we just return true"); return true; } StringBuilder sb = new StringBuilder(mDownloadRecordUriPrefix); sb.append("MM=").append(downloadedMm).append("&&cell=").append(tel); InputStream is = null; try { is = NetworkUtils.openContectionLocked( sb.toString(), MyApplication.getInstance().getSecurityKeyValuesObject()); DebugUtils.logD(TAG, "record download successfully."); return true; } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } return false; }
/** * 记录交换 * * @param downloadedMm 要下载的名号 * @param exchangeMm 用于交换的名号 * @return 如果记录成功,返回true,否则返回false */ public static boolean recordExchange(String downloadedMm, String exchangeMm) { StringBuilder sb = new StringBuilder("http://www.mingdown.com/cell/jiaohuan.ashx?"); sb.append("mm1=").append(downloadedMm).append("&mm2=").append(exchangeMm); try { InputStream is = NetworkUtils.openContectionLocked( sb.toString(), MyApplication.getInstance().getSecurityKeyValuesObject()); if (is == null) { return false; } String resultStr = NetworkUtils.getContentFromInput(is); DebugUtils.logD(TAG, "service return " + resultStr); if ("ok".equals(resultStr)) { DebugUtils.logD(TAG, "finish recording exchange " + resultStr); return true; } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return false; }
public void cancelTask(boolean cancel) { super.cancel(cancel); // 由于IO操作是不可中断的,所以我们这里关闭IO流来终止任务 NetworkUtils.closeInputStream(_is); }