亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? auth.java

?? android開發(fā)入門與實(shí)踐源代碼
?? JAVA
字號:
package us.imnet.iceskysl;

import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.security.GeneralSecurityException;
import java.security.NoSuchAlgorithmException;
import java.util.Hashtable;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import us.imnet.iceskysl.util.PreferencesUtil;
import us.imnet.iceskysl.util.Tools;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;

public class Auth extends Activity {
	public final String TAG = "Auth";
	// Identifiers for option menu items
	private static final int MENU_DONE = Menu.FIRST + 1;
	private static final int MENU_REDO = MENU_DONE + 1;
	
	private static final int MENU_BOX = MENU_REDO + 1;
	private static final int MENU_RADIO = MENU_BOX + 1;
	private static final int MENU_REF = MENU_RADIO + 1;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		if (getSessionInPerence().equalsIgnoreCase("")) {
			setContentView(R.layout.auth);
			setTitle("Yobo: 用戶授權(quán)");
			showAlertDialog();
		} else {
			setContentView(R.layout.uinfo);
			setTitle("Yobo: 用戶信息");
			findViews();
			restorePrefs();
		}
	}

	private TextView nickname_filed;
	private TextView url_filed;
	private TextView created_date_filed;
	private TextView homepage_filed;
	private ImageView pic_filed;

	private void findViews() {
		Log.d(TAG, "find Views");
		nickname_filed = (TextView) findViewById(R.id.nickname);
		url_filed = (TextView) findViewById(R.id.url);
		created_date_filed = (TextView) findViewById(R.id.created_date);
		homepage_filed = (TextView) findViewById(R.id.homepage);
		pic_filed = (ImageView) findViewById(R.id.pic);
	}

	// Restore preferences
	private void restorePrefs() {
		SharedPreferences settings = getSharedPreferences(
				PreferencesUtil.preferencesSetting, 0);
		String nickname = settings.getString(PreferencesUtil.nickname, "");
		String created_date = settings.getString(PreferencesUtil.created_date,
				"");
		String loved_singers = settings.getString(
				PreferencesUtil.loved_singers, "");
		String homepage = settings.getString(PreferencesUtil.homepage, "");
		String pic = settings.getString(PreferencesUtil.image, "");

		if (nickname != "") {
			nickname_filed.setTextSize(18);
			nickname_filed.setText("昵稱:" + nickname);
		}
		if (loved_singers != "") {
			url_filed.setTextSize(18);
			url_filed.setText("喜歡歌手:" + loved_singers);
		}
		if (created_date != "") {
			created_date_filed.setTextSize(18);
			created_date_filed.setText("注冊時(shí)間:" + created_date);
		}
		if (homepage != "") {
			homepage_filed.setTextSize(18);
			created_date_filed.setText("個(gè)人主頁:" + homepage);
		}
		if (pic != "") {
			pic_filed.setImageBitmap(Tools.returnBitMap(pic));
		}
	}

	// 獲取用戶鑒權(quán)后的訪問碼:session
	public String getSession(String token) throws GeneralSecurityException {
		String session = "";
		// 1.構(gòu)造需要的數(shù)據(jù)
		long timestamp = System.currentTimeMillis();
		String nonce = Tools.md5(String.valueOf(System.currentTimeMillis())
				+ PreferencesUtil.api_secret);
		Hashtable<String, String> params = new Hashtable<String, String>();
		params.put("api_key", PreferencesUtil.api_key);
		params.put("nonce", nonce);
		params.put("timestamp", String.valueOf(timestamp));
		params.put("token", token);
		// 2.對參數(shù)進(jìn)行簽名
		String api_sig = Tools.md5(Tools.sig_params(params)
				+ PreferencesUtil.api_secret);
		// 4.轉(zhuǎn)換參數(shù)格式
		String params_str = Tools.paramsToString(params) + "api_sig=" + api_sig;
		// 5.提交數(shù)據(jù),獲得RequestToken反饋
		String url_get = PreferencesUtil.baseUrl + PreferencesUtil.sessionUrl;
		Log.i("url_get", url_get);
		String result = Tools.sendGetRequest(url_get, params_str);
		// 6.對反饋的XML進(jìn)行解析,得到requestToken的值
		session = Tools.paxSession(result);
		Log.i(TAG, "session=" + session);
		// 7.把這個(gè)值存起來
		SharedPreferences settings = getSharedPreferences(
				PreferencesUtil.preferencesSetting, 0);
		settings.edit().putString(PreferencesUtil.session, session).commit();
		return session;
	}

	// 獲取訪問碼
	private String getToken() throws NoSuchAlgorithmException {
		String token = "";
		// 1.構(gòu)造需要的數(shù)據(jù)
		long timestamp = System.currentTimeMillis();
		String nonce = Tools.md5(String.valueOf(System.currentTimeMillis())
				+ PreferencesUtil.api_secret);
		Hashtable<String, String> params = new Hashtable<String, String>();
		params.put("api_key", PreferencesUtil.api_key);
		params.put("nonce", nonce);
		params.put("timestamp", String.valueOf(timestamp));

		// 2.對參數(shù)進(jìn)行簽名
		String api_sig = Tools.md5(Tools.sig_params(params)
				+ PreferencesUtil.api_secret);
		// 3.添加api_sig
		// params.put("api_sig",api_sig);
		// 4.轉(zhuǎn)換參數(shù)格式
		String params_str = Tools.paramsToString(params) + "api_sig="
				+ api_sig;
		// 5.提交數(shù)據(jù),獲得RequestToken反饋
		String url_get = PreferencesUtil.baseUrl + PreferencesUtil.tokenUrl;
		Log.i("url_get", url_get);
		String result = Tools.sendGetRequest(url_get, params_str);
		// 6.對反饋的XML進(jìn)行解析,得到requestToken的值
		token = Tools.paxToken(result);
		// 7.把這個(gè)值存起來
		SharedPreferences settings = getSharedPreferences(
				PreferencesUtil.preferencesSetting, 0);
		settings.edit().putString(PreferencesUtil.token, token).commit();
		// // 8.構(gòu)造用戶驗(yàn)證的URL
		// url = PreferencesUtil.baseUrl + PreferencesUtil.authorizeUrl
		// + "?token=" + token;

		return token;
	}

	// 顯示對話框
	private void showAlertDialog() {
		final AlertDialog alert = new AlertDialog.Builder(this).create();
		alert.setTitle("配置");
		alert.setMessage(getString(R.string.app_start));
		alert.setButton("授權(quán)", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int whichButton) {
				alert.dismiss();
				try {
					openWebBrowser(Tools.getAuthorizeUrl(getToken()));
				} catch (NoSuchAlgorithmException e) {
					e.printStackTrace();
				}
			}
		});
		alert.setButton2("注冊", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int whichButton) {
				alert.dismiss();
				try {
					openWebBrowser(Tools.getRegUrl(getToken()));
				} catch (NoSuchAlgorithmException e) {
					e.printStackTrace();
				}
			}
		});
		alert.show();
	}

	// 判斷SharedPreferences中是否已經(jīng)存儲(chǔ)了acessToken
	private String getSessionInPerence() {
		SharedPreferences settings = getSharedPreferences(
				PreferencesUtil.preferencesSetting, 0);
		String session = settings.getString(PreferencesUtil.session, "");
		if (session.equals(""))
			return "";
		else
			return session;
	}

	// 判斷SharedPreferences中是否已經(jīng)存儲(chǔ)了acessToken
	private String getTokenInPerence() {
		Log.i(TAG, "getTokenInPerence..");
		SharedPreferences settings = getSharedPreferences(
				PreferencesUtil.preferencesSetting, 0);
		String token = settings.getString(PreferencesUtil.token, "");
		if (token.equals(""))
			return "";
		else
			return token;
	}

	// 打開瀏覽器,定位到指定的地址
	protected void openWebBrowser(String url) {
		Log.i(TAG, "about to launch browser, url: " + url);
		Intent i = new Intent(Intent.ACTION_VIEW);
		i.setData(Uri.parse(url));
		startActivity(i);
		startActivityForResult(i, 0);
	}

	// 初始化菜單
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);
		if (getSessionInPerence().equalsIgnoreCase("")) {
			menu.add(0, MENU_DONE, 0, R.string.menu_done).setIcon(
					R.drawable.menu_start).setAlphabeticShortcut('S');
			menu.add(0, MENU_REDO, 0, R.string.menu_redo).setIcon(
					R.drawable.menu_helps).setAlphabeticShortcut('H');
		} else {
			menu.add(0, MENU_BOX, 0, R.string.menu_box).setIcon(
					R.drawable.music_box).setAlphabeticShortcut('B');
			menu.add(0, MENU_RADIO, 0, R.string.menu_radio).setIcon(
					R.drawable.music_radio).setAlphabeticShortcut('R');
			menu.add(0, MENU_REF, 0, R.string.menu_ref).setIcon(
					R.drawable.refresh).setAlphabeticShortcut('R');
		}

		return true;
	}

	// 當(dāng)一個(gè)菜單被選中的時(shí)候調(diào)用
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		Intent intent = new Intent();
		switch (item.getItemId()) {
		case MENU_DONE:
			try {
				String session = getSessionInPerence();
				if (session == "") {
					session = getSession(getTokenInPerence());
				}
				updateUserInfos(session);
			} catch (GeneralSecurityException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return true;
		case MENU_REDO:
			openWebBrowser(Tools.getAuthorizeUrl(getTokenInPerence()));
			break;
		case MENU_BOX:
			//我的音樂盒里列表
			intent.setClass(Auth.this, BoxActivty.class);
			startActivity(intent);
			return true;
		case MENU_RADIO:
			//我的電臺(tái)列表
			intent.setClass(Auth.this, StationActivty.class);
			startActivity(intent);
			break;
		}
		return true;
		// return super.onOptionsItemSelected(item);
		
	}

	// 取用戶的個(gè)人信息
	public void updateUserInfos(String session) {
		// 1.構(gòu)造需要的數(shù)據(jù)
		long timestamp = System.currentTimeMillis();
		String nonce = "";
		nonce = Tools.md5(String.valueOf(System.currentTimeMillis())
				+ PreferencesUtil.api_secret);
		Hashtable<String, String> params = new Hashtable<String, String>();
		params.put("api_key", PreferencesUtil.api_key);
		params.put("nonce", nonce);
		params.put("timestamp", String.valueOf(timestamp));
		params.put("token", session);
		// 2.對參數(shù)進(jìn)行簽名
		String api_sig = "";
		api_sig = Tools.md5(Tools.sig_params(params)
				+ PreferencesUtil.api_secret);
		// 4.轉(zhuǎn)換參數(shù)格式
		String params_str = Tools.paramsToString(params) + "api_sig=" + api_sig;
		// 5.提交數(shù)據(jù),獲得RequestToken反饋
		String url_get = PreferencesUtil.baseUrl + PreferencesUtil.user_info;
		Log.i("url_get", url_get);
//		InputStream result = Tools.sendGetRequest2(url_get, params_str);
		
		// Tools.parUinfo(url_get+"?id=825856");
		String result = Tools.sendGetRequest(url_get, params_str);
		Log.i(TAG, "result:" + result);
		// Tools.parUinfo(result);
		DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
		try {
			DocumentBuilder dombuilder = domfac.newDocumentBuilder();
			InputStream is = new ByteArrayInputStream(result.getBytes());
			Document doc = dombuilder.parse(is);
			Element root = doc.getDocumentElement();
			System.out.println(root.getAttributes().getNamedItem("status")
					.getNodeValue());
			NodeList users = root.getChildNodes();
			if (users != null) {
				SharedPreferences settings = getSharedPreferences(
						PreferencesUtil.preferencesSetting, 0);
				Editor editor = settings.edit();
				for (int i = 0; i < users.getLength(); i++) {
					Node book = users.item(i);
					if (book.getNodeType() == Node.ELEMENT_NODE) {
						for (Node node = book.getFirstChild(); node != null; node = node
								.getNextSibling()) {
							if (node.getNodeType() == Node.ELEMENT_NODE) {
								String value = node.getFirstChild()
										.getNodeValue();
								System.out.println(node.getNodeName() + ":"
										+ value);
								if (node.getNodeName().trim().equalsIgnoreCase(
										"nickname")) {
									editor.putString(PreferencesUtil.nickname,
											value);
								}
								if (node.getNodeName().equalsIgnoreCase(
										"loved_singers")) {
									editor.putString(
											PreferencesUtil.loved_singers,
											value);
								}
								if (node.getNodeName().equalsIgnoreCase(
										"created_date")) {
									editor
											.putString(
													PreferencesUtil.created_date,
													value);
								}
								if (node.getNodeName()
										.equalsIgnoreCase("image")) {
									editor.putString(PreferencesUtil.image,
											value);
								}
								if (node.getNodeName().equalsIgnoreCase(
										"homepage")) {
									editor.putString(PreferencesUtil.homepage,
											value);
								}

							}
						}
					}
				}
				editor.commit();
				restorePrefs();
			}
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人综合在线观看| 日本精品一区二区三区高清| 婷婷六月综合亚洲| 夜夜嗨av一区二区三区四季av| 国产精品久久网站| 国产人妖乱国产精品人妖| 国产清纯白嫩初高生在线观看91| 久久综合色8888| 精品国产一区二区亚洲人成毛片| 日韩一级片在线观看| 欧美大片在线观看一区二区| 精品国产免费人成在线观看| 久久女同精品一区二区| 久久理论电影网| 亚洲国产成人在线| 国产精品免费av| 日韩美女视频一区| 一区二区三区产品免费精品久久75| 亚洲一区二区视频在线| 天堂蜜桃一区二区三区| 麻豆成人91精品二区三区| 国产一区激情在线| 成人午夜私人影院| aaa欧美色吧激情视频| 日本久久一区二区| 91精品久久久久久久99蜜桃| 精品国产免费人成电影在线观看四季| 国产亚洲精品免费| 亚洲欧美综合在线精品| 亚洲图片欧美一区| 免费一级欧美片在线观看| 国产一区二区在线免费观看| 波多野结衣中文字幕一区二区三区| 91视视频在线直接观看在线看网页在线看 | 在线不卡的av| 精品捆绑美女sm三区| 欧美国产日韩a欧美在线观看 | 国产69精品久久777的优势| 99久久婷婷国产综合精品电影 | 成人av免费在线观看| 在线一区二区三区四区五区| 日韩一区二区在线看| 亚洲国产精品99久久久久久久久| 亚洲一卡二卡三卡四卡无卡久久| 麻豆精品国产91久久久久久 | 久久久高清一区二区三区| 国产精品女主播av| 午夜国产精品一区| 国产aⅴ综合色| 在线成人av影院| 日本一区二区三级电影在线观看 | 日韩欧美色电影| 国产精品第一页第二页第三页| 午夜精品123| 不卡一区中文字幕| 日韩一区二区在线观看视频| 亚洲同性gay激情无套| 蜜臀av一区二区在线免费观看| av中文字幕一区| 精品乱人伦小说| 亚洲一区二区三区四区在线| 国产91色综合久久免费分享| 欧美日韩国产精选| 亚洲特级片在线| 激情五月婷婷综合网| 一本到三区不卡视频| 精品国产三级电影在线观看| 亚洲午夜视频在线观看| 不卡欧美aaaaa| 国产性色一区二区| 老司机一区二区| 欧美天堂一区二区三区| 国产精品色一区二区三区| 日本欧美久久久久免费播放网| 99久久精品免费| 国产午夜精品福利| 久久精品国产99国产| 欧美丝袜丝nylons| 亚洲欧美一区二区三区孕妇| 国产一区二区在线看| 欧美一级xxx| 午夜精品久久久久久不卡8050| 色天天综合色天天久久| 国产精品你懂的在线欣赏| 国产精品一色哟哟哟| 日韩一区二区三区在线视频| 天堂av在线一区| 欧美性生活久久| 一区二区三区在线观看网站| 成人av片在线观看| 国产精品视频一二三| 国产sm精品调教视频网站| 精品国产伦理网| 精品一二三四区| 精品国产欧美一区二区| 久久精品国产久精国产| 欧美一区二区三区视频免费播放| 国产精品主播直播| 日韩欧美二区三区| 另类小说色综合网站| 日韩精品在线一区| 久久福利视频一区二区| 正在播放亚洲一区| 日本亚洲三级在线| 日韩欧美中文一区二区| 蜜臀av性久久久久蜜臀aⅴ| 日韩免费视频一区| 美腿丝袜在线亚洲一区| 欧美一区二区三区四区高清| 日本一区中文字幕| 精品国产99国产精品| 国内精品免费**视频| 国产日韩高清在线| 99久久国产免费看| 一区二区三区日韩精品视频| 欧美午夜精品一区二区蜜桃| 亚洲成人在线免费| 欧美一卡二卡三卡| 久久精品国产亚洲a| 久久久久久久免费视频了| 国产成人av电影在线播放| 国产日韩av一区| 91香蕉视频mp4| 丝袜美腿亚洲色图| 精品捆绑美女sm三区| 成人激情黄色小说| 亚洲激情av在线| 欧美日韩在线电影| 久久91精品国产91久久小草| 国产午夜亚洲精品理论片色戒| 99久久国产综合精品色伊| 一区二区三国产精华液| 欧美疯狂做受xxxx富婆| 精品亚洲免费视频| 国产精品日日摸夜夜摸av| 欧洲一区二区三区在线| 日韩成人午夜精品| 欧美激情综合在线| 在线观看亚洲专区| 免费看黄色91| 中文字幕一区二区三区不卡 | 国产高清亚洲一区| 亚洲免费在线看| 91精品国产综合久久久久久久久久| 久久av老司机精品网站导航| 日韩伦理av电影| 欧美一区二区成人| 91香蕉视频在线| 美女性感视频久久| 国产精品久久久久久久浪潮网站| 欧美精品少妇一区二区三区| 国产成人在线影院 | 91搞黄在线观看| 九九**精品视频免费播放| 亚洲三级免费观看| 日韩欧美国产综合在线一区二区三区 | 久久99久久精品欧美| 中文字幕亚洲不卡| 日韩一区二区在线观看| 色综合久久久久综合99| 精品影视av免费| 亚洲福利电影网| 欧美国产日本韩| 91精品国产入口| 一本一道久久a久久精品 | 久久综合色一综合色88| 欧美在线综合视频| 国产乱码精品一区二区三区忘忧草| 亚洲精品中文在线观看| 久久综合久久鬼色| 91精品国产91久久综合桃花 | 欧美日韩一级视频| 成人福利视频在线| 久久99精品久久久久| 亚洲一区二区成人在线观看| 中文字幕精品一区二区精品绿巨人| 51精品久久久久久久蜜臀| 色香色香欲天天天影视综合网| 国产精品一品视频| 日本女优在线视频一区二区| 亚洲精品va在线观看| 国产精品久久久久久福利一牛影视| 精品久久99ma| 91精品国产综合久久久久久久| 日本韩国精品在线| 丁香五精品蜜臀久久久久99网站| 全国精品久久少妇| 亚洲一区二区三区不卡国产欧美| 亚洲欧美自拍偷拍色图| 国产人成一区二区三区影院| 精品成人一区二区| 日韩精品一区二区三区中文不卡| 欧美日韩另类一区| 欧美艳星brazzers| 在线观看av一区| 91成人看片片| 91福利区一区二区三区| 在线视频综合导航| 欧美又粗又大又爽| 色先锋aa成人|