/**
* 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);
}
}