Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> [android]ShareSDK——內容分享和短信驗證

[android]ShareSDK——內容分享和短信驗證

編輯:關於Android編程

前言

新版本ShareSDK的分享和短信驗證,按官網的文檔,都需要添加一個標簽,而分享和短息驗證的這個標簽內容都一樣。會沖突。

解決辦法:分享用舊版本,短信驗證用新版本。後面會有解決辦法。

 

分享

導入工程見初識ShareSDK——嵌入和登陸

 

		OnekeyShare oks = new OnekeyShare();
		//所有SSO都是針對新浪微博d
		oks.disableSSOWhenAuthorize();
		oks.setSilent(true);
如果沒有指定分享平台,則默認所有平台都會跳出。

 

oks.setPlatform(platformName);

一些需要注意的,注釋已經很詳細了。

 

		//分享時Notification的圖標和文字2.5.9以後的版本不調用此方法
		//oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
		 // title標題,印象筆記、郵箱、信息、微信、人人網和QQ空間使用
		 oks.setTitle(getString(R.string.share));
		// titleUrl是標題的網絡鏈接,僅在人人網和QQ空間使用
		 oks.setTitleUrl("http://sharesdk.cn");
		 // text是分享文本,所有平台都需要這個字段
		//有字數限制
		 oks.setText("我是分享文本");
		// imagePath是圖片的本地路徑,Linked-In以外的平台都支持此參數(如果本地沒有,則後面的語句不會執行)
		//oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片
		//oks.setImageUrl("=");//網絡路徑  QQ空間有時候分享不成功(權限問題)
		// url僅在微信(包括好友和朋友圈)中使用
		 oks.setUrl("http://sharesdk.cn");
		 	// comment是我對這條分享的評論,僅在人人網和QQ空間使用
		 oks.setComment("我是測試評論文本");
		 	// site是分享此內容的網站名稱,僅在QQ空間使用
		 oks.setSite(getString(R.string.app_name));
		 	// siteUrl是分享此內容的網站地址,僅在QQ空間使用
		 oks.setSiteUrl("http://sharesdk.cn");
		 	//設置經緯度(可根據定位獲取)
		 	//oks.setLatitude(latitude);
		 	//oks.setLongitude(longitude);
		 
 			//啟動分享GUI(圖形用戶界面)
		 oks.show(this);

 

短信驗證

短信驗證和登陸分享申請KEY 和 SECRET的地方不一樣。。我犯了這個錯誤,結果驗證的時候提示Appkey無效或被禁用。。
\

官網下載SDK

\

 

將SMS文件夾下的SMSSDK文件拷貝到工程裡,作為library導入。

添加權限:

 

    
    
    
    
    
    
    
    
    

添加代碼調用:

 

 

		SMSSDK.initSDK(this, APP_KEY, APP_SECRET);
		RegisterPage page = new RegisterPage();
		page.setRegisterCallback(new EventHandler(){
			@Override
			public void afterEvent(int event, int result, Object data) {
				if(result == SMSSDK.RESULT_COMPLETE){
					HashMap phoneMap = (HashMap) data;
					String country = (String) phoneMap.get("country");
					String phone = (String) phoneMap.get("phone"); 
					// 提交用戶信息,這個方法是獲取了手機後,你想采取的操作。
					//registerUser(country, phone);
					System.out.println(country+phone);
				}
			}
			
		});
		page.show(this);

自定義短信驗證界面

都是官網的文檔

將private EventHandler eh;聲明為全局,為了在Activity的onDestroy()裡,對EventHandler注銷驗證SMSSDK.unregisterEventHandler(eh);

 

		 eh=new EventHandler(){
			 
	            @Override
	            public void afterEvent(int event, int result, Object data) {
	 
	               if (result == SMSSDK.RESULT_COMPLETE) {
	                //回調完成
	                if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
	                //提交驗證碼成功
	                	System.out.println("成功!");
	                }else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
	                //獲取驗證碼成功
	                	System.out.println("獲取驗證碼成功");
	                }else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
	                //返回支持發送驗證碼的國家列表
	                } 
	              }else{                                                                 
	                 ((Throwable)data).printStackTrace(); 
	          }
	      } 
	   }; 
	SMSSDK.registerEventHandler(eh); //注冊短信回調

為按鈕添加監聽事件:

 

 

		//獲取短信驗證
		btn_num.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				if (!TextUtils.isEmpty(et_num.getText().toString())) {
					SMSSDK.getVerificationCode("86", et_num.getText()
							.toString());
				}
			}
		});
		//把短信裡的驗證碼提交到服務器
		btn_code.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				SMSSDK.submitVerificationCode("86",et_num.getText().toString(), et_code.getText().toString());
			}
		});

 

文檔地址:無gui接口調用

 

ShareSDK新版本短信驗證和分享沖突解決

因為新版本shareSDK中分享與驗證中,mainfest中name中都是"com.mob.tools.MobUIShell"放在一個工程裡會沖突。
分享: 將mainfest文件節點
        


改為:
        


將share的libs中 \
對應的2.6.0的替換為 \ 短信驗證的不用變。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved