Android楽動力V 5.75最新取得Key方法、提出ステップ数、QQログイン取得keyケース

18250 ワード

package com.xdd.tenp;
import java.util.HashMap; import java.util.Map;
import org.apache.http.Header; import org.json.JSONException; import org.json.JSONObject;
import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.Contacts.People.Phones; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.Toast;
import com.android.volley.Request.Method; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.JsonRequest; import com.android.volley.toolbox.Volley; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; import com.tencent.connect.UserInfo; import com.tencent.connect.common.Constants; import com.tencent.tauth.IUiListener; import com.tencent.tauth.Tencent; import com.tencent.tauth.UiError; import com.xdd.tenp.enity.Uite;
/***Tencentクラスのlogin関数を呼び出すことでログイン/検証ログイン状態を開始します.*このAPIは、*(1)開発者がmTencentインスタンスのsetOpenId、setAccessToken APIを呼び出していない場合、*は正常なログイン操作を実行する.*(2)開発者が先にmTencentインスタンスのsetOpenId,setAccessToken*APIを呼び出すと,そのAPIはログイン状態を検証する動作を実行する.ログイン状態が有効であればアプリケーションに正常に戻り、*ログイン状態が無効であれば自動的にログインプロセスに入り、最新のログイン状態データをアプリケーション*@author super bear**/public class Activity Login extends Activity{
private static final String APPID = "100302037";
private static final String  TAG  = "ActivityLogin";
private EditText et1;
private EditText et2;
private Tencent mTencent;
private IUiListener loginListener;
private IUiListener userInfoListener;
private String scope = "all";

private UserInfo userInfo;

private RequestQueue mRequestQueue;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    mRequestQueue = Volley.newRequestQueue(this);
    Uite.getMac(this);
    setupViews();

    initData();

    onLoginGuDong();

Cursor localCursor = key(“content://cn.ledongli.ldl.DataProvider/StatsManager/dailystatskey/1.4521824E9”);
    String str = "";
    String paramDate = str;

    if (localCursor != null)
    {
      paramDate = str;
      if (localCursor.moveToFirst()) {
        paramDate = localCursor.getString(localCursor.getColumnIndex("dailystats"));
      }
    }

    System.out.println("paramDate="+paramDate);
}


public Cursor key(String paramString)
{
    Uri param = Uri.parse(paramString);
    return ActivityLogin.this.getContentResolver().query(param, null, null, null, null);
}

@Override
protected void onDestroy() {
    if (mTencent != null) {
        mTencent.logout(ActivityLogin.this);
    }
    super.onDestroy();
}

/**
 *   View
 */
private void setupViews() {
    et1 = (EditText) findViewById(R.id.editText1);
    et2 = (EditText) findViewById(R.id.editText2);

    findViewById(R.id.button2).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            System.out.println("      qq    ");
            if (!mTencent.isSessionValid()) {
                mTencent.login(ActivityLogin.this, scope, loginListener);
            }
        }
    });

    findViewById(R.id.button3).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            System.out.println("        ");
            if(mTencent.getQQToken() == null){
                System.out.println("qqtoken == null");
            }
            userInfo = new UserInfo(ActivityLogin.this, mTencent.getQQToken());
            userInfo.getUserInfo(userInfoListener);
        }
    });
}

/**
 *     
 */
private void initData() {
    mTencent = Tencent.createInstance(APPID, ActivityLogin.this);
    //     ,          ,        get_user_info,add_t
    scope = "all";
    loginListener = new IUiListener() {

        @Override
        public void onError(UiError arg0) {
        }
        //          {
        //              "ret": 0,
        //              "pay_token": "D1B5A68200A59EF682EEBCFA8CE74022",
        //              "pf": "desktop_m_qq-10000144-android-2002-",
        //              "query_authority_cost": 437,
        //              "authority_cost": -44496979,
        //              "openid": "1CF5D212DF1194C97A797B7597B3B03F",
        //              "expires_in": 7776000,
        //              "pfkey": "7b36c06639b070b6a35061874981a095",
        //              "msg": "",
        //              "access_token": "F3A7F1EE28AEDD520CDB1B16C25129E9",
        //              "login_cost": 536
        //          }
        @Override
        public void onComplete(Object value) {

            System.out.println("     ..");
            if (value == null) return;
            try {
                Toast.makeText(ActivityLogin.this, "    ",Toast.LENGTH_LONG).show();
                JSONObject jo = (JSONObject) value;

                String msg = jo.getString("msg");

                System.out.println("json=" + String.valueOf(jo));

                System.out.println("msg="+msg);
                //                  if ("sucess".equals(msg)) {

                String openID = jo.getString("openid");
                String accessToken = jo.getString("access_token");
                String expires = jo.getString("expires_in");
                mTencent.setOpenId(openID);
                mTencent.setAccessToken(accessToken, expires);
                //                  }

            } catch (Exception e) {
            }

        }

        @Override
        public void onCancel() {

        }
    };

    userInfoListener = new IUiListener() {

        @Override
        public void onError(UiError arg0) {

        }
        //          {
        //              "is_yellow_year_vip": "0",
        //              "ret": 0,
        //              "figureurl_qq_1": "http://q.qlogo.cn/qqapp/100302037/1CF5D212DF1194C97A797B7597B3B03F/40",
        //              "figureurl_qq_2": "http://q.qlogo.cn/qqapp/100302037/1CF5D212DF1194C97A797B7597B3B03F/100",
        //              "nickname": "         ",
        //              "yellow_vip_level": "0",
        //              "is_lost": 0,
        //              "msg": "",
        //              "city": "  ",
        //              "figureurl_1": "http://qzapp.qlogo.cn/qzapp/100302037/1CF5D212DF1194C97A797B7597B3B03F/50",
        //              "vip": "0",
        //              "level": "0",
        //              "figureurl_2": "http://qzapp.qlogo.cn/qzapp/100302037/1CF5D212DF1194C97A797B7597B3B03F/100",
        //              "province": "",
        //              "is_yellow_vip": "0",
        //              "gender": " ",
        //              "figureurl": "http://qzapp.qlogo.cn/qzapp/100302037/1CF5D212DF1194C97A797B7597B3B03F/30"
        //          }
        @Override
        public void onComplete(Object arg0) {
            if(arg0 == null) return;

            try {
                JSONObject jo = (JSONObject) arg0;
                int ret = jo.getInt("ret");
                System.out.println("json=" + String.valueOf(jo));
                if(ret == 100030){
                    //    ,      
                    Runnable r = new Runnable() {
                        public void run() {
                            mTencent.reAuth(ActivityLogin.this, "all", new IUiListener() {

                                @Override
                                public void onError(UiError arg0) {
                                }
                                @Override
                                public void onComplete(Object arg0) {
                                }
                                @Override
                                public void onCancel() {
                                }
                            });
                        }
                    };

                    ActivityLogin.this.runOnUiThread(r);
                }else {
                    String nickName = jo.getString("nickname");
                    String gender   = jo.getString("gender");

                    Toast.makeText(ActivityLogin.this, "  ," + nickName, Toast.LENGTH_LONG).show();
                }
            } catch (Exception e) {
            }
        }
        @Override
        public void onCancel() {
        }
    };
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == Constants.REQUEST_API) {
        if (resultCode == Constants.RESULT_LOGIN) {
            Tencent.handleResultData(data, loginListener);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public void onLoginGuDong(){
    //      {
    //          "access_token": "3fd3337fb3da44204896cf89e7836ffc",
    //          "expire_in": 93312000,
    //          "token_type": "bearer",
    //          "user_id": "c45dd8cf-4244-4ed1-9711-ec3710220031",
    //          "refresh_token": "16fbc52a3887ff322b96fb7e2f126af8"
    //      }
    // http://api.codoon.com/external_token_with_info?token=F3A7F1EE28AEDD520CDB1B16C25129E9&external_user_id=1CF5D212DF1194C97A797B7597B3B03F&client_id=dc039f07e003da02938a5bc4605b5acc&source=qq2

    String url ="http://api.codoon.com/external_token_with_info?token=F3A7F1EE28AEDD520CDB1B16C25129E9&external_user_id=1CF5D212DF1194C97A797B7597B3B03F&client_id=dc039f07e003da02938a5bc4605b5acc&source=qq2";
    AsyncHttpClient client = new AsyncHttpClient(); //             
    //RequestParams params = new RequestParams();   //              
    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.get(url, new AsyncHttpResponseHandler() {

        @Override
        public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
            String GetData = null;
            GetData = new String(arg2);
            Log.e("ok_GetData", GetData);
            try {
                JSONObject jsonObject = new JSONObject(GetData);
                String access_token = jsonObject.getString("access_token");
                String refresh_token= jsonObject.getString("refresh_token");
                Log.e("ok_access_token="+access_token, refresh_token);
                onGetWXurl(access_token);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
            Log.e("on_GetData","" +arg0);
            Toast.makeText(ActivityLogin.this, "      ", Toast.LENGTH_SHORT).show();
        }
    });
}

public void onGetWXurl(String access_token){
    //      {
    //          "status": "OK",
    //          "data": {
    //          "qrticket": "http://we.qq.com/d/AQCIc9a340sXVa6sYC7vdDk3bu3EW7WBOTNFSg-_",
    //          "deviceid": "gh_877fdb038ace_63cc410908c157b2b21f506d9c644200"
    //      },
    //      "description": ""
    //      }
    // http://api.codoon.com/api/get_device_qrcode
    // Authorization: Bearer 3fd3337fb3da44204896cf89e7836ffc

    String url ="http://api.codoon.com/api/get_device_qrcode";
    AsyncHttpClient client = new AsyncHttpClient(); //             
    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.addHeader("Authorization", "Bearer " + access_token);
    client.get(url, new AsyncHttpResponseHandler() {

        @Override
        public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
            String GetData = null;
            GetData = new String(arg2);
            Log.e("ok_GetData", GetData);
            try {
                JSONObject jsonObject = new JSONObject(GetData).getJSONObject("data");
                String qrticket = jsonObject.getString("qrticket");
                String deviceid= jsonObject.getString("deviceid");
                Log.e("ok_ qrticket="+qrticket, deviceid);

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
            Log.e("on_GetData","" +arg0);
            Toast.makeText(ActivityLogin.this, "      ", Toast.LENGTH_SHORT).show();
        }
    });
}

public void onStepsUpload(String access_token){

    String url ="ttp://api.codoon.com/api/mobile_steps_upload_detail";
    AsyncHttpClient client = new AsyncHttpClient(); //             
    RequestParams params = new RequestParams();     //             

    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.addHeader("Authorization", "Bearer " + access_token);
    client.get(url, new AsyncHttpResponseHandler() {

        @Override
        public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
            String GetData = null;
            GetData = new String(arg2);
            Log.e("ok_GetData", GetData);
            try {
                JSONObject jsonObject = new JSONObject(GetData).getJSONObject("data");
                String qrticket = jsonObject.getString("qrticket");
                String deviceid= jsonObject.getString("deviceid");
                Log.e("ok_ qrticket="+qrticket, deviceid);

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
            Log.e("on_GetData","" +arg0);
            Toast.makeText(ActivityLogin.this, "      ", Toast.LENGTH_SHORT).show();
        }
    });

    // ***************************************
    // {"date":"2015-10-30","content":[######]}
    // ["19:20",1000,0.8870400230026246,15.84,20],
    // “[” +      () + “,” + TempStrps + “,” +   _       () + “,” +     () + “,” +     () + “]”
    RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
    Map<String, String> map = new HashMap<String, String>();  
    map.put("date", "value1");  
    map.put("content", "value2");  
    JSONObject jsonObject = new JSONObject(map);
    JsonRequest<JSONObject> jsonRequest = new JsonObjectRequest(Method.POST, url, jsonObject,
            new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            Log.d(TAG, "response -> " + response.toString());
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, error.getMessage(), error);
        }
    })
    {
        //    override getParams()  ,     post             
        //       ,  JSONObject      JsonObjectRequest   
        //              
        //          @Override
        //          protected Map<String, String> getParams() {                
        //                Map<String, String> map = new HashMap<String, String>();  
        //                  map.put("name1", "value1");  
        //                  map.put("name2", "value2");  

        //              return params;
        //          }

        @Override
        public Map<String, String> getHeaders() {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("Accept", "application/json");
            headers.put("Content-Type", "application/json; charset=UTF-8");

            return headers;
        }


    };

    requestQueue.add(jsonRequest);

}

public void ldl(View V){ //http://blog.sina.com.cn/s/blog_7263950101017l79.html Cursor localCursor = key(“content://cn.ledongli.ldl.DataProvider/StatsManager/dailystatskey/1.4521824E9”);
    String str = "";
    String paramDate = str;

    if (localCursor != null)
    {
      paramDate = str;
      if (localCursor.moveToFirst()) {
        paramDate = localCursor.getString(localCursor.getColumnIndex("dailystats"));
      }
    }

    System.out.println("paramDate="+paramDate);

    while (localCursor.moveToNext()) {

        for(int i=0;i<localCursor.getCount();i++){

            String name = localCursor.getString(i);  
            Log.i("System.out", name);
        }
    } 

startActivity(new Intent(this, ActivityMain.class)); 

}
}