package com.xdd.tenp;
import org.apache.http.Header;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.xdd.tenp.enity.EBSaveData;
import com.xdd.tenp.enity.Md5;
public class MainActivity extends ActionBarActivity {
private ProgressDialog pd;
private TextView t_pc;
private EditText e_steps;
private EditText e_uid;
private Button bt_ok;
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
e_steps = (EditText)findViewById(R.id.editText1);
t_pc = (TextView)findViewById(R.id.textView1);
bt_ok = (Button)findViewById(R.id.button1);
e_uid = (EditText)findViewById(R.id.editText2);
t_pc.setText(getPCData(this));
for(int i=0;i<10;i++){
Log.e("i", i+"");
}
bt_ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onSetPost();
}
});
e_steps.setText(EBSaveData.getString(context, "steps"));
e_uid.setText(EBSaveData.getString(context, "uid"));
}
public void onSetPost() {
String uid;
String steps;
try {
steps = e_steps.getText().toString();
uid = e_uid.getText().toString();
} catch (Exception e) {
Toast.makeText(this, "请输入id 或 加速步数", Toast.LENGTH_LONG).show();
return;
}
EBSaveData.putString(context, "uid", uid);
EBSaveData.putString(context, "steps", steps);
pdshow();
String url ="http://pl.api.ledongli.cn/xq/io.ashx";
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
long date = System.currentTimeMillis()/1000;
params.put("uid", uid );
params.put("pc", getPCData(this));
params.put("action", "profile");
params.put("cmd", "updatedaily" );
params.put("list", "[{\"distance\":0,\"duration\":0,\"report\":\"[]\",\"calories\":0,\"steps\":"+steps+",\"pm2d5\":0,\"date\":"+date+",\"activeValue\":305}]");
client.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.addHeader("Content-Type", "application/x-www-form-urlencoded");
client.post(url, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
try {
String GetData = null;
GetData = new String(arg2);
Log.e("ok_GetData", GetData);
String api_result_msg = new JSONObject(GetData).getString("status").toString();
if(api_result_msg.equals("OK")){
Toast.makeText(MainActivity.this, "加速成功,请前往“微信运动” 刷新排行榜", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "错误!请检查乐动力是否可以正常提交信息,如果不行,请重新登录乐动力并提交成绩", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "请重新登录乐动力并“提交成绩”,待乐动力正常以后。再来尝试", Toast.LENGTH_SHORT).show();
}
pdmiss();
}
@Override
public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
String GetData = null;
GetData = new String(arg2);
Log.e("on_GetData", GetData);
pdmiss();
Toast.makeText(MainActivity.this, "连接网络错误", Toast.LENGTH_SHORT).show();
}
});
}
public static String getPCData(Context paramContext)
{
String str = ((TelephonyManager)paramContext.getSystemService("phone")).getDeviceId();
Log.e("str", str+"");
return "an"+ Md5.MD5(str);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private long exitTime;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exit();
return false;
}
return super.onKeyDown(keyCode, event);
}
public void exit() {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(this, "再按一次退出应用", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
System.exit(0);
}
}
public void pdmiss(){
if(pd != null){
pd.dismiss();
pd = null;
}
}
public void pdshow(){
pd = ProgressDialog.show(this, "微动力加速器", "正在处理中,请稍后...");
}
}
package com.xdd.tenp.enity;
import java.security.MessageDigest;
public class Md5 {
/**
* MD5加码。32位
* @param inStr
* @return
*/
public static String MD5(String inStr) {
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
return "";
}
char[] charArray = inStr.toCharArray();
byte[] byteArray = new byte[charArray.length];
for (int i = 0; i < charArray.length; i++)
byteArray[i] = (byte) charArray[i];
byte[] md5Bytes = md5.digest(byteArray);
StringBuffer hexValue = new StringBuffer();
for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16)
hexValue.append("0");
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
}
}