返回顶部
首页 > 资讯 > 移动开发 >Android实现支付宝手势密码功能
  • 462
分享到

Android实现支付宝手势密码功能

支付宝手势Android 2022-06-06 11:06:49 462人浏览 薄情痞子
摘要

今天就给大家分享Android实现支付宝手势密码,很常见,像现在用微信支付,支付宝支付的时候都要自己设置的4位PIN码,然后输入PIN码后立即调用支付接口去支付,毫无疑问的安全

今天就给大家分享Android实现支付宝手势密码,很常见,像现在用微信支付,支付宝支付的时候都要自己设置的4位PIN码,然后输入PIN码后立即调用支付接口去支付,毫无疑问的安全问题,不会觉得手机被人拿了后却不知道自己网银的钱的去向,这也是正常安全逻辑性问题。

好,下面我们来看下具体的实现:

入口,启动页面就简单的几个按钮,布局贴出来,代码如下:


<RelativeLayout xmlns:android="Http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
>
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_marginTop="20dp"
  android:orientation="horizontal">
 <Button
  android:id="@+id/button_enable_pin"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="设置" />
 <Button
  android:id="@+id/button_change_pin"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_below="@+id/button_enable_pin"
  android:text="改变" />
 <Button
  android:id="@+id/button_unlock_pin"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_below="@+id/button_change_pin"
  android:text="检验" />
 <Button
  android:id="@+id/button_compat_locked"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_below="@+id/button_unlock_pin"
  android:text="PIN页面" />
 </LinearLayout>
</RelativeLayout>

我们看下四个按钮的操作的事情,代码如下:


package com.GitHub.orangegangsters.lollipin;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import com.github.orangegangsters.lollipin.lib.PinActivity;
import com.github.orangegangsters.lollipin.lib.managers.AppLock;
import lollipin.orangegangsters.github.com.lollipin.R;

public class MainActivity extends PinActivity implements View.OnClickListener {
 private static final int REQUEST_CODE_ENABLE = 11;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  this.findViewById(R.id.button_enable_pin).setOnClickListener(this);
  this.findViewById(R.id.button_change_pin).setOnClickListener(this);
  this.findViewById(R.id.button_unlock_pin).setOnClickListener(this);
  this.findViewById(R.id.button_compat_locked).setOnClickListener(this);
 }
 
 @Override
 public void onClick(View v) {
  Intent intent = new Intent(MainActivity.this, CustomPinActivity.class);
  switch (v.getId()) {
   //设置密码
   case R.id.button_enable_pin:
    intent.putExtra(AppLock.EXTRA_TYPE, AppLock.ENABLE_PINLOCK);
    startActivityForResult(intent, REQUEST_CODE_ENABLE);
    break;
   //改变密码
   case R.id.button_change_pin:
    intent.putExtra(AppLock.EXTRA_TYPE, AppLock.CHANGE_PIN);
    startActivity(intent);
    break;
   //校验密码
   case R.id.button_unlock_pin:
    intent.putExtra(AppLock.EXTRA_TYPE, AppLock.UNLOCK_PIN);
    startActivity(intent);
    break;
   //填入手势密码进入PIN页面
   case R.id.button_compat_locked:
    Intent intent2 = new Intent(MainActivity.this, LockedCompatActivity.class);
    startActivity(intent2);
    break;
  }
 }
 //回调
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  switch (requestCode){
   case REQUEST_CODE_ENABLE:
    Toast.makeText(this, "启用PIN码", Toast.LENGTH_SHORT).show();
    break;
  }
 }
}

都看的明白,以下会把CustomPinActivity,LockedCompatActivity贴出来,前面的操作大概就是这样,分别给每个按钮设置不同的putExtra值,第一个设置按钮利用的是startActivityForResult启动页面,因为设置完密码后是存入到Appcation中的,而且拿到请求码回到主页面的时候,吐司了“启动PIN码”,但是你想改变和检验密码必须要先设置密码,这是很正常的逻辑,我把Appcation先贴出来,比较简单,几句代码:


package com.github.orangegangsters.lollipin;
import android.app.Application;
import com.github.orangegangsters.lollipin.lib.managers.LockManager;
import lollipin.orangegangsters.github.com.lollipin.R;

public class CustomApplication extends Application {
 @SuppressWarnings("unchecked")
 @Override
 public void onCreate() {
  super.onCreate();
  LockManager<CustomPinActivity> lockManager = LockManager.getInstance();
  lockManager.enableAppLock(this, CustomPinActivity.class);
  lockManager.getAppLock().setLoGoId(R.drawable.security_lock);
 }
}

LockManager是采用网友的Library。下面我把CustomPinActivity贴出来:


package com.github.orangegangsters.lollipin;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.widget.Toast;
import com.github.orangegangsters.lollipin.lib.managers.AppLockActivity;
import lollipin.orangegangsters.github.com.lollipin.R;
import uk.me.lewisdeane.ldialogs.BaseDialog;
import uk.me.lewisdeane.ldialogs.CustomDialog;

public class CustomPinActivity extends AppLockActivity {
 @Override
 public void showForgotDialog() {
  Resources res = getResources();
  //创建对话框
  CustomDialog.Builder builder = new CustomDialog.Builder(this,
    res.getString(R.string.activity_dialog_title),
    res.getString(R.string.activity_dialog_accept));
  builder.content(res.getString(R.string.activity_dialog_content));
  builder.negativeText(res.getString(R.string.activity_dialog_decline));
  //设置样式
  builder.darkTheme(false);
  builder.typeface(Typeface.SANS_SERIF);
  builder.positiveColor(res.getColor(R.color.light_blue_500)); // 设置按钮的字体颜色(确定)
  builder.negativeColor(res.getColor(R.color.light_blue_500));// 设置按钮的字体颜色(取消)
  builder.rightToLeft(false); // 按钮是否从左到右的顺序排列
  builder.titleAlignment(BaseDialog.Alignment.CENTER);//居中
  builder.buttonAlignment(BaseDialog.Alignment.CENTER);
  builder.setButtonStacking(false);
  //设置字体的大小
  builder.titleTextSize((int) res.getDimension(R.dimen.activity_dialog_title_size));
  builder.contentTextSize((int) res.getDimension(R.dimen.activity_dialog_content_size));
  builder.positiveButtonTextSize((int) res.getDimension(R.dimen.activity_dialog_positive_button_size));
  builder.negativeButtonTextSize((int) res.getDimension(R.dimen.activity_dialog_negative_button_size));
  //创建对话框
  CustomDialog customDialog = builder.build();
  customDialog.setCanceledOnTouchOutside(false);
  customDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//透明
  customDialog.setClickListener(new CustomDialog.ClickListener() {
   @Override
   public void onConfirmClick() {
    Toast.makeText(getApplicationContext(), "Yes", Toast.LENGTH_SHORT).show();
   }
   @Override
   public void onCancelClick() {
    Toast.makeText(getApplicationContext(), "Cancel", Toast.LENGTH_SHORT).show();
   }
  });
  //显示对话框
  customDialog.show();
 }
 @Override
 public void onPinFailure(int attempts) {
 }
 @Override
 public void onPinSuccess(int attempts) {
 }
 @Override
 public int getPinLength() {
  return super.getPinLength();//可重修修改默认的长度
 }
}

CustomDialog也是用第三方,而没有用系统自带的AlertDialog,因为太丑了,想我这种追求完美的,都是丑拒的。设置密码的view是自定义的,包括Keyboard。

LockedCompatActivity类如下:


package com.github.orangegangsters.lollipin;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.github.orangegangsters.lollipin.lib.PinCompatActivity;
import lollipin.orangegangsters.github.com.lollipin.R;

public class LockedCompatActivity extends PinCompatActivity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_compat_locked);
  initView();
 }
 private void initView() {
  Toolbar toolbar = (Toolbar) findViewById(R.id.id_toolbar);
  ImageView iv_image= (ImageView) findViewById(R.id.iv_image);
  setSupportActionBar(toolbar);
  toolbar.setTitle("Title");
  toolbar.setTitleTextColor(getResources().getColor(android.R.color.white));
  toolbar.setSubtitleTextColor(getResources().getColor(android.R.color.white));
  toolbar.setLogo(R.drawable.ic_launcher);
  iv_image.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    Toast.makeText(LockedCompatActivity.this,"可继续做相应的操作",Toast.LENGTH_SHORT).show();
   }
  });
 }
}

该类是输入正确的PIN码后才能访问的页面,从而在该页面可以操作你想操作的东西,比如调用支付接口,直接执行支付操作,这也是一个不错的例子。错误的PIN码振动Keyboard。

简单的讲述了下主要实现的代码,看下总体的效果:

最后附上源码,拿走不谢!下载地址

您可能感兴趣的文章:Android手势密码的实现Android自定义控件实现手势密码Android 简易手势密码开源库详解Android自定义UI手势密码终结版Android仿支付宝手势密码解功能Android自定义UI手势密码改进版源码下载Android自定义UI手势密码简单版Android九宫格手势密码代码设计Android手势密码实现实例代码Android实现手势密码功能


--结束END--

本文标题: Android实现支付宝手势密码功能

本文链接: https://lsjlt.com/news/28342.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android实现支付宝手势密码功能
    今天就给大家分享android实现支付宝手势密码,很常见,像现在用微信支付,支付宝支付的时候都要自己设置的4位PIN码,然后输入PIN码后立即调用支付接口去支付,毫无疑问的安全...
    99+
    2022-06-06
    支付宝 手势 Android
  • Android仿支付宝手势密码解锁功能
    Starting 创建手势密码可以查看 CreateGestureActivity.java 文件. 登陆验证手势密码可以看 GestureLoginActivity.jav...
    99+
    2022-06-06
    解锁 支付宝 手势 Android
  • Android 支付宝支付功能封装实现
      在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装。封装的代码也很简单,是将官网给的demo提取出一个...
    99+
    2022-06-06
    封装 支付宝 Android
  • Android实现支付宝支付密码输入界面
    本文实例为大家分享了Android实现支付宝支付密码输入界面的具体代码,供大家参考,具体内容如下 效果图: 主要代码: import java.util.ArrayList;   ...
    99+
    2024-04-02
  • Android中怎么接入支付宝实现支付功能
    本篇文章为大家展示了Android中怎么接入支付宝实现支付功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.登录官网他的官网就是蚂蚁金服的开放平台了,我们可以访问 蚂蚁金服开放平台 ,并且注册账...
    99+
    2023-05-31
    android
  • Vue如何实现支付宝支付功能
    这篇文章主要介绍了Vue如何实现支付宝支付功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先给大家上个效果图: <div&...
    99+
    2024-04-02
  • Android仿支付宝支付密码输入框
    本文实例为大家分享了Android实现一个仿支付宝支付密码的输入框,主要实现如下: PasswordView.java package com.jackie.alipay.p...
    99+
    2022-06-06
    输入 支付宝 输入框 Android
  • Android集成支付宝支付功能示例
    公司项目中需要支付功能,现在支付宝、微信支付很方便,也很多人使用,因此,他们是首选。在此记录一下支付宝集成过程,下期为微信支付,敬请期待首先去支付宝官网下载其最新的Android的SDK集成Dmeo支付宝 选择SDK&Dmeo进行下...
    99+
    2023-05-30
    android 支付宝 支付
  • uniapp如何实现支付宝支付的功能
    随着移动互联网的飞速发展,人们越来越依赖于手机支付。而支付宝是其中使用最广泛的支付方式之一。在移动应用中,如果要进行支付宝支付的功能开发,那么使用uniapp框架就是一个非常好的选择。本文将介绍uniapp如何实现支付宝支付的功能。一、准备...
    99+
    2023-05-14
  • UniApp + SpringBoot 实现支付宝支付和退款功能
    目录开发准备支付宝支付开发后端部分前端部分支付宝退款开发后端部分上篇介绍了UniApp + SpringBoot 实现微信支付和退款功能,喜欢的朋友可以点击查看。 开发准备 一台用于...
    99+
    2024-04-02
  • SpringBoot实现简易支付宝网页支付功能
           该文章描述了一个基于SpringBoot程序的支付宝支付demo,由于是个人开发者而非企业,因此设...
    99+
    2024-04-02
  • Android实现支付宝6位密码输入界面
     我们先来照图分析一下: (1)限制输入6位,每一位都有自己的框格,每个格显示一位; (2)有回退/取消支付按钮; (3)有忘记密码链接; (4)自定义的只能输入数字...
    99+
    2022-06-06
    输入 界面 支付宝 Android
  • vue项目中的支付功能实现(微信支付和支付宝支付)
    目录项目中常见的支付方式    支付宝支付微信支付项目中常见的支付方式     支付宝支付  &nbs...
    99+
    2024-04-02
  • Android自定义View仿支付宝输入六位密码功能
    跟选择银行卡界面类似,也是用一个PopupWindow,不过输入密码界面是一个自定义view,当输入六位密码完成后用回调在Activity中获取到输入的密码并以Toast显示密...
    99+
    2022-06-06
    view 输入 支付宝 Android
  • vue2实现手势密码功能
    本文实例为大家分享了vue2实现手势密码功能的具体代码,供大家参考,具体内容如下 组件: <template>   <div class="masks" v-sho...
    99+
    2024-04-02
  • Ecshop实现的支付宝手机网页支付功能免费版示例
    本文实例讲述了Ecshop实现的支付宝手机网页支付功能。分享给大家供大家参考,具体如下: Ecshop手机网页版本支持在网上找了很多需要花钱购买了,在这里小编整理了一个Ecshop 支付宝手机网页支付免费版供大家参考. ...
    99+
    2022-06-12
    Ecshop 支付宝 手机 网页 支付功能 免费版
  • Android 实现仿支付宝的密码均分输入框
    Android 仿支付宝的密码均分输入框此为安卓项目,通过重绘edittext进行文字的均分排布。直接贴上代码:package com.xxx.xxx;import android.content.Context;import androi...
    99+
    2023-05-31
    android 支付宝 密码
  • Flutter实现支付宝集五福手画福字功能
    目录需求实现思路显示笔画轨迹撤销与清空保存到相册完整代码与demo下载需求 包含需求的具体有: 界面随着用户手指的滑动显示走过轨迹,也就是对应的笔画。 点击清空按钮可以清除所有的笔画...
    99+
    2024-04-02
  • Android实现调取支付宝健康码
    目录前言1.setOnClickListener事件,首先看源码2.Intent类总结前言 调取支付宝健康码,其实可以不使用接口去调用;我们可以通过俩个简单的小功能去调取: 1.se...
    99+
    2024-04-02
  • 怎么用Java也实现微信和支付宝支付功能
    这篇文章主要介绍“怎么用Java也实现微信和支付宝支付功能”,在日常操作中,相信很多人在怎么用Java也实现微信和支付宝支付功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作