作為開發(fā)者,登錄功能對于開發(fā)任何App都是必不可少的(一些特殊情況除外)。傳統(tǒng)上只有三種:賬號(郵箱)密碼、短信驗證、掃碼登錄。但是這三種方法太繁瑣了。如果您忘記了密碼,可能需要向您的秘密電子郵件或手機發(fā)送驗證碼,再次填寫密碼,然后登錄。這個過程很麻煩。我不僅是開發(fā)者,也是用戶。(當然,有些應(yīng)用使用人臉解鎖、指紋識別、手勢解鎖等功能,但不是很常見。).后來在網(wǎng)上查資料,移動、電信、聯(lián)通都有自己的一鍵登錄SDK,市場上也出現(xiàn)了一些其他的一鍵登錄SDK。由于我是sharesdk的老用戶,無意中發(fā)現(xiàn)他們在官網(wǎng)有一個mob二次測試,所以經(jīng)歷過。以下是我整個使用過程的詳細說明。
1.開發(fā)者賬戶和管理中心(1)打開官網(wǎng)注冊賬戶并登錄。點擊右上角的“產(chǎn)品中心”。
注意:為了更好的使用產(chǎn)品,請?zhí)顚憣嵜J證信息。
/***描述:
*獲取簽名信息工具類
*/
publicclassPackageUtils{
private static final char[]HexDigest = { 48,49,50,51,52,53,54,55,
56, 57, 97, 98, 99, 100, 101, 102};
private static final String TAG = " package utils " . GetClass . GetSimpleName;
/**
*獲取當前應(yīng)用程序的包名
*
* @param上下文上下文對象
* @return返回包名
*/
publicString getAppPackageName(上下文上下文){
//當前應(yīng)用pid
int PID = Android . OS . process . MyPid;
//任務(wù)管理類
activity manager manager =(activity manager)Context . GetSystemServiCe(上下文。ACTIVITY _ SERVICE);
//遍歷所有應(yīng)用程序
列表<。ActivityManager。正在運行進程信息>infos = manager . getrunningappprocesses;
for(ActivityManager。RunningAppProcessInfo信息:infos) {
if(info.pid == pid) {
return info . process name;
}
}
return
}
/**
*獲取32位包簽名
*/
publicString getAppSignature(活動活動){
package manager = activity . getpackagemanager;
/* *通過包管理器獲取指定包名中帶簽名的包信息* */
PackageInfo packageInfo = null
嘗試{
//傳入包名
package Info = manager . GetPackageInfo(GetaPPackagename(activity),PackageManager。GET _ SIGNALS);
} catch(PackageManager。namenotfundexception e){
e.printStackTrace
}
/* * * *
signature[]signatures = package info . signatures;
字符串結(jié)果= hexdigest(簽名[ 0]。toByteArray);
if(result!= null) {
Log.d(TAG,"簽名:"+結(jié)果);
returnresult
} else{
Log.d(TAG,“無簽名,請重試”);
}
returnnull
}
public StrIng hex digest(byte[]paramArrayOfByte){
嘗試{
MessageDigest localMessageDigest = MessageDigest . GetInstance(" MD5 ");
localmessagedigest . update(paramArrayOfByte);
byte[]arrayOfByte = LocalMessageDigest . digest;
char[]Arrayofchar = new char[32];
inti = 0;
intj = 0;
while( true) {
if(i >;= 16) {
returnnewString(arrayOfChar);
}
int k = ArrayofByte _;
intm = j+1;
arrayOfChar[j]= HexDigest[(0xF & amp;k >。>。>。4)];
j = m+1;
arrayOfChar[m]= HexDigest[(k & amp;0xF)];
i++;
}
} catch(Exception LocalException){
}
returnnull
}
}
然后在第一個活動的onCreate方法或應(yīng)用程序的onCreate方法中添加兩行代碼,您可以通過日志來檢查它。
publicclass mainactivityextendsactivity {
@覆蓋
受保護的無效創(chuàng)建(捆綁保存的實例){
super . OnCreate(SaveDinstancestate);
setContentView(r . layout . activity _ main);
//添加兩行代碼
string AppSignature = Newpackageutils . GetAppSignature(main Activity。這個);
Log.d( "MainActivity "," 32位簽名:"+AppSignature);
}
}
模式二:如果不喜歡麻煩,可以直接從命令行獲取。
前提:1.把jdk里面的`keytool.exe所在路徑加入環(huán)境變量。2.生成簽名文件,這里的命令最后一個參數(shù)需要簽名文件存放路徑。keytool - list-v -keystore C:UsersAdministratorDesktopdata.jks方法3:單擊梯度任務(wù)中的登錄報告
運行出錯示例圖: 運行出錯示例圖:第六,無秘密降落的一般過程
國內(nèi)三大運營商都有相應(yīng)的免密碼登錄SDK。我搜索了一下中國移動、中國電信、中國聯(lián)通的一鍵式登錄的SDK文檔,發(fā)現(xiàn)移動文檔最全,電信一般,聯(lián)通官網(wǎng)打不開。
具體文檔鏈接如下:
移動 - 互聯(lián)網(wǎng)能力開放平臺 電信 - 天翼賬號開放平臺 聯(lián)通 - WO+ 開放平臺 [http://open.wo.com.cn](http://open.wo.com.cn) ? 打不開了?啥回事?一鍵登錄的系統(tǒng)交互過程類似,主要分為四個步驟:
第一步,號碼認證SDK初始化。 第四步,發(fā)起取號。七.優(yōu)缺點:(1)優(yōu)點:
1.用戶輸入手機號碼或獲得用戶授權(quán)后,一鍵即可完成認證,方便快捷,省時省力,減少登陸時的耗時。大概1秒即可登陸,太方便了。 2.減少忘記賬號密碼時的短信和郵箱麻煩,你只要有手機號就可以登陸了。比普通的手機短信驗證方便多了。 3.支持中國三大運營商全網(wǎng)手機號碼認證,一點接入,全國全網(wǎng)覆蓋。 4.適用于以手機號進行注冊、登陸、安全風控的場景,可實現(xiàn)用戶無感知校驗,拓寬校驗場景。 5.針對雙卡手機,可以一鍵切換手機號碼驗證,也挺方便的。 1.通話和網(wǎng)絡(luò)的SIM卡必須為同一張卡。否則會導(dǎo)致驗證失敗。 2.請確保打開流量,否者會導(dǎo)致驗證失敗。 3.請確保手機卡正常使用,停機欠費可能導(dǎo)致驗證失敗。 4.官方文檔建議完善一下,入口有點不好找,建議完善一下。另外建議把常見問題和開發(fā)者最關(guān)心的問題都加上去。至于要不要收費,收費標準是什么,這不是我能操心的。請查看官方文件或咨詢相關(guān)客服。我只是一個開發(fā)者。既然暴民二測這么好用,我當然會支持。
下載中心: http://www.mob.com/download 集成文檔: http://wiki.mob.com/secverify集成文檔/ 示例代碼: https://github.com/MobClub/SecVerify-for-Android關(guān)于我:我是阿威。如有疑問,請撥打微信2497727771聯(lián)系我。
1.《一鍵登錄 App一鍵登錄只需1秒驚呆我了,趕緊了解一下》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《一鍵登錄 App一鍵登錄只需1秒驚呆我了,趕緊了解一下》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/yule/1069249.html