/** * author : lipan * filename : UploadLogService.java * create_time : 2014年8月29日 下午5:59:45 */ package com.sets.speedtest.service; import org.apache.http.entity.StringEntity; import org.json.JSONArray; import org.json.JSONObject; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.os.Parcelable; import android.util.Log; import com.sets.speedtest.constant.C; import com.sets.speedtest.db.AddressInfoDao; import com.sets.speedtest.domain.AddressInfo; import com.sets.speedtest.domain.DeviceInfo; import com.sets.speedtest.domain.TestLog; import com.sets.speedtest.manager.http.BaseResponseHandler; import com.sets.speedtest.manager.http.WSClient; import com.sets.speedtest.utils.CheckPhoneStatus; /** * @author : lipan * @create_time : 2014年8月29日 下午5:59:45 * @desc : 上传测速日志服务 * @update_person: * @update_time : * @update_desc : * */ public class UploadLogService extends Service { private static final String TAG = UploadLogService.class.getSimpleName(); @Override public void onCreate() { super.onCreate(); Log.i(TAG, TAG + " is start..."); } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onDestroy() { super.onDestroy(); Log.i(TAG, TAG + " is over!"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i(TAG, TAG + " is uploading!"); try { // 获得设备信息 DeviceInfo deviceInfo = CheckPhoneStatus.getDeviceInfo(getApplicationContext()); // 保存测速结果 AddressInfo address = (AddressInfo) intent.getParcelableExtra(AddressInfo.KEY); new AddressInfoDao().insertResult(address); // 上传测速日志数据 Parcelable[] parcelables = intent.getParcelableArrayExtra(TestLog.KEY); JSONArray paramsArray = new JSONArray(); for (Parcelable parcelable : parcelables) { TestLog log = (TestLog) parcelable; JSONObject params = new JSONObject(); params.put("addressId", address.getAddressId()); // 地址Id // params.put("signalTester", address.getSignalTester()); // 测试人 params.put("phone_nbr",deviceInfo.phone_nbr); //手机号 params.put("phone_type", deviceInfo.phone_type); // 手机型号 // 运营商: CUC, CMC, CTC params.put("carrier", deviceInfo.carrier); params.put("net_type", deviceInfo.net_type); // 网络类型:2G, 3G, // 4G // 移动信号强度:-110 - -50dB,值越大表示信号越好 params.put("signal_strength", log.signal_strength); params.put("download", log.download); // 下载带宽, KB为单位 params.put("upload", 0); // 上传带宽, KB为单位 params.put("begin_time", log.begin_time); // 开始时间 params.put("end_time", log.end_time); // 结束时间 paramsArray.put(params); } // 上传 WSClient.postJson(getApplicationContext(), C.WS_UPLOAD_LOGS, new StringEntity( paramsArray.toString(), C.CHARSET_UTF8), new BaseResponseHandler() { @Override public void onFinish() { // 上传完成,结束服务 stopSelf(); } }); } catch (Exception e) { Log.i(TAG, TAG + " is error!" + e.toString()); // 上传出现异常,结束服务 stopSelf(); } return super.onStartCommand(intent, flags, startId); } }