作为开发者,登录功能对于开发任何App都是必不可少的(一些特殊情况除外)。传统上只有三种:账号(邮箱)密码、短信验证、扫码登录。但是这三种方法太繁琐了。如果您忘记了密码,可能需要向您的秘密电子邮件或手机发送验证码,再次填写密码,然后登录。这个过程很麻烦。我不仅是开发者,也是用户。(当然,有些应用使用人脸解锁、指纹识别、手势解锁等功能,但不是很常见。).后来在网上查资料,移动、电信、联通都有自己的一键登录SDK,市场上也出现了一些其他的一键登录SDK。由于我是sharesdk的老用户,无意中发现他们在官网有一个mob二次测试,所以经历过。以下是我整个使用过程的详细说明。
1.开发者账户和管理中心(1)打开官网注册账户并登录。点击右上角的“产品中心”。
注意:为了更好的使用产品,请填写实名认证信息。
/***描述:
*获取签名信息工具类
*/
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;
/**
*获取当前应用程序的包名
*
* @param上下文上下文对象
* @return返回包名
*/
publicString getAppPackageName(上下文上下文){
//当前应用pid
int PID = Android . OS . process . MyPid;
//任务管理类
activity manager manager =(activity manager)Context . GetSystemServiCe(上下文。ACTIVITY _ SERVICE);
//遍历所有应用程序
列表<。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;
字符串结果= hexdigest(签名[ 0]。toByteArray);
if(result!= null) {
Log.d(TAG,"签名:"+结果);
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方法或应用程序的onCreate方法中添加两行代码,您可以通过日志来检查它。
publicclass mainactivityextendsactivity {
@覆盖
受保护的无效创建(捆绑保存的实例){
super . OnCreate(SaveDinstancestate);
setContentView(r . layout . activity _ main);
//添加两行代码
string AppSignature = Newpackageutils . GetAppSignature(main Activity。这个);
Log.d( "MainActivity "," 32位签名:"+AppSignature);
}
}
模式二:如果不喜欢麻烦,可以直接从命令行获取。
前提:1.把jdk里面的`keytool.exe所在路径加入环境变量。2.生成签名文件,这里的命令最后一个参数需要签名文件存放路径。keytool - list-v -keystore C:UsersAdministratorDesktopdata.jks方法3:单击梯度任务中的登录报告
运行出错示例图: 运行出错示例图:第六,无秘密降落的一般过程
国内三大运营商都有相应的免密码登录SDK。我搜索了一下中国移动、中国电信、中国联通的一键式登录的SDK文档,发现移动文档最全,电信一般,联通官网打不开。
具体文档链接如下:
移动 - 互联网能力开放平台 电信 - 天翼账号开放平台 联通 - WO+ 开放平台 [http://open.wo.com.cn](http://open.wo.com.cn) ? 打不开了?啥回事?一键登录的系统交互过程类似,主要分为四个步骤:
第一步,号码认证SDK初始化。 第四步,发起取号。七.优缺点:(1)优点:
1.用户输入手机号码或获得用户授权后,一键即可完成认证,方便快捷,省时省力,减少登陆时的耗时。大概1秒即可登陆,太方便了。 2.减少忘记账号密码时的短信和邮箱麻烦,你只要有手机号就可以登陆了。比普通的手机短信验证方便多了。 3.支持中国三大运营商全网手机号码认证,一点接入,全国全网覆盖。 4.适用于以手机号进行注册、登陆、安全风控的场景,可实现用户无感知校验,拓宽校验场景。 5.针对双卡手机,可以一键切换手机号码验证,也挺方便的。 1.通话和网络的SIM卡必须为同一张卡。否则会导致验证失败。 2.请确保打开流量,否者会导致验证失败。 3.请确保手机卡正常使用,停机欠费可能导致验证失败。 4.官方文档建议完善一下,入口有点不好找,建议完善一下。另外建议把常见问题和开发者最关心的问题都加上去。至于要不要收费,收费标准是什么,这不是我能操心的。请查看官方文件或咨询相关客服。我只是一个开发者。既然暴民二测这么好用,我当然会支持。
下载中心: http://www.mob.com/download 集成文档: http://wiki.mob.com/secverify集成文档/ 示例代码: https://github.com/MobClub/SecVerify-for-Android关于我:我是阿威。如有疑问,请拨打微信2497727771联系我。
1.《一键登录 App一键登录只需1秒惊呆我了,赶紧了解一下》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《一键登录 App一键登录只需1秒惊呆我了,赶紧了解一下》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1069249.html