精华内容
下载资源
问答
  • public static void testRegister() { ... String params = "{'name':'test1','pwd':'123','ruid':'test2'}"; Eryptogram eryptogram = new Eryptogram(); params = eryptogram.encryptData...这个安卓注册代码怎么写?
  • 安卓食品代码

    2015-06-16 12:54:12
    实现食品的注册登录,增删查改方便初学者能够更好的学习安卓知识,实现资源的共享化。
  • 安卓代码

    2018-04-08 16:10:45
    Android 登录界面代码,界面跳转,输入用户名和密码,需要先注册进去
  • 安卓zxing 代码demo

    2017-11-22 14:52:10
    提示:在清单文件中注册Application public class MyApplication extends Application{ @Override public void onCreate() { super.onCreate(); //初始化二维码工具类 ZXingLibrary.initDisplayOpinion(this);...
  • 安卓端主要完成了包括账户密码的注册、登陆,进入主页面中分首页、攻略、发布、商城、“我的”等模块。(1)首页中主要完成了轮播图、游桂林、知天下以及天气的查看。其中轮播图的内容是桂林风景的推荐,游桂林主要是...
  • 安卓简单注册登录的基本代码.

    热门讨论 2012-12-20 15:03:54
    基于手机端的android开发登录注册代码,界面判断用户是否存在,很清楚喽
  • 安卓端主要完成了包括账户密码的注册、登陆,进入主页面中分首页、攻略、发布、商城、“我的”等模块。(1)首页中主要完成了轮播图、游桂林、知天下以及天气的查看。其中轮播图的内容是桂林风景的推荐,游桂林主要是...
  • 高通410c编译烧写安卓代码

    千次阅读 2017-10-25 04:16:22
    之前repo sync下载的安卓7.0代码,高通还未给出BSP,迫于无奈只能换成安卓6.0。 在这里提供一种新的下载方式,到这个网站直接下BSP(可能需要注册一个高通开发者账号)。 ...

    之前repo sync下载的安卓7.0代码,高通还未给出BSP,迫于无奈只能换成安卓6.0。


    下载代码:

    在这里提供一种新的下载方式,到这个网站直接下BSP(可能需要注册一个高通开发者账号)。

    https://developer.qualcomm.com/hardware/dragonboard-410c/software

    这里写图片描述

    我选择的是Android Board Support Package vLA.BR.1.2.7-01010-8x16.0-4
    ,下载下来解压。

    chmod +x DB410c_build.sh(会自动下载bsp对应的android_source,并打补丁文件)
    ./DB410c_build.sh
    PS:如果下载中断,执行repo sync即可。
       剩余空间最好为60g以上。

    编译代码:

    安卓的编译对应的java版本为open jdk1.7,不可使用1.8。
    aosp中的预编译好的ld程序存在bug,需要使用Ubuntu系统默认的ld来替换它。

    cd prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/x86_64-linux/bin/
    mv ld ld.old
    ln -s /usr/bin/ld.gold ld

    修改art/build/Android.common_build.mk,改为:

        ifeq ($(WITHOUT_HOST_CLANG), false)
           # By default, host builds use clang for better warnings.
           ART_HOST_CLANG := true
        endif
    编译:
    cd APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2
    make -j8            //编译整个工程
    make -j8 aboot      //生成bootloader(高通的叫little kernel)
    make -j8 bootimage  //生成boot.img
    make -j8 clean      //清理

    烧写代码:

    烧写的方式很简单,在410c通电之前按住音量-,即可进入fastboot模式。如果正确,电脑执行fastboot devices可以看到设备。

    fastboot flash boot boot.img
    fastboot flash cache cache.img
    fastboot flash persist persist.img
    fastboot flash system system.img
    fastboot flash userdata userdata.img
    fastboot flash recovery recovery.img
    PS:执行完后,断电重启即可。
    展开全文
  • 仿QQ代码,实现了登入注册的聊天功能.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 高仿陌陌源代码第一部分 1.登录界面的账号采用默认的三种才能正确的登录,其他均报账号密码错误. 电话账号为: +8612345678901 (国家区号请选中国+86) 邮箱账号为: 86930007@qq.com 陌陌账号为: 86930007 默认...
  • // 注册Receiver来获取蓝牙设备相关的结果 IntentFilter intent = new IntentFilter(); intent.addAction(BluetoothDevice.ACTION_FOUND);// 用BroadcastReceiver来取得搜索结果 intent.addAction...
  • 一个登入验证代码.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 代码为本人的安卓毕业设计代码,我用的是环境是jdk6的版本,前端使用的是eclipse,后台使用面向对象程序设计语言JAVA进行应用程序的开发;使用Mysql作为本系统的后台数据库。 作物助手App,是以android系统手机为...
  • 前言 本文收集了我自己工作以来提交代码前的所有检查点。事实证明,这样能有效提高自己的代码质量和功能的稳定性。所以推荐大家以后每次提交代码前,都可以看下这份Review清单哈。...在页面里注册的监听,是否反注册

    前言

     

    本文收集了我自己工作以来提交代码前的所有检查点。事实证明,这样能有效提高自己的代码质量和功能的稳定性。所以推荐大家以后每次提交代码前,都可以看下这份Review清单哈。

     

    清理操作

     

    1.页面退出时,是否完成必要的清理操作

     

    是否调用Handler的removeCallbacksAndMessages(null)来清空Handler里的消息;

    是否取消了还没完成的请求;

    在页面里注册的监听,是否反注册;

    假如自己用到观察者模式,是否反注册;

    假如用了RxJava的话,是否解除订阅;

    2.数据库的游标是否已经关闭

    这个点一般人都知道,出问题一般在于,没有考虑到多线程并发时的情况下,Cursor没有被释放。

    所以数据库的操作需要加上同步代码块

    详细可参考:http://www.2cto.com/kf/201408/329574.html

     

    3.打开过的文件流是否关闭

     

    4.Android 3.0以下的版本,使用完的Bitmap是否调用recycle(),否则会一直占用内存

    而Android 3.0及以上的版本不需要调用recycle(),因为这些版本的Bitmap全部放到虚拟机的堆内存中,让GC自动回收。

     

    5.WebView使用完是否调用了其destory()函数

     

    是否能进一步优化自己的代码

     

    1.保存在内存中的图片,是否做过压缩处理再保存在内存里

    否则可能由于图片质量太高,导致OOM

     

    2.Intent传递的数据太大,会导致页面跳转过慢。太大的数据可以通过持久化的形式传递,例如读写文件

     

    3.频繁地操作同一个文件或者执行同一个数据库操作,是否考虑把它用静态变量或者局部变量的形式缓存在内存里。用空间换时间

     

    4.放在主页面的控件,是否可以考虑用ViewStub来优化启动速度

     

    要小心第三方包

     

    1.build.gradle远程依赖第三方包时,版本号建议写死,不要使用+号

    避免由于新版本的第三方包引入了新的问题

     

    2.导入第三方工程时,记得把编码转换成自己工程当前是用的编码

     

    3.调用第三方的包或者JDK的方法时,要跳进他们的源码,看要不要加 try-catch

    否则可能会导致自己应用的崩溃

     

    4.使用第三方包时,是否加上其混淆规则

    若漏掉加上第三方包的混淆规则,会导致第三方包不该混淆的代码被混淆。在Debug版本没有发现问题,但是Release版本就会出现问题

     

    5.系统应用添加so时,是否在固件对应的Android.mk文件上加入新增的so,否则系统可能编译不过

     

    @lib/armeabi/libcommon.so \

    @lib/armeabi/libabcdefg.so \

    注意要成对出现的地方

     

    1.系统的、自己写的,注册和反注册的方法,是否成对出现

     

    2.在生命周期的回调里,创建和销毁的代码是否对应起来

    比如:onCreate()里面创建了Adapter,那么对应Adapter的退出处理操作(比如清空Image缓存),一般就要写在onDestory(),而不能写在onDestoryView()。

     

    类似的生命周期对应的代码有:

    onStart()、onStop();

    onCreate()、onDestory();

    onResume()、onPause();

    onCreateView()、onDestoryView()

     

    3.若ListView的item复用了,对Item里View的操作是否成对出现

    比如:

     

    switch (type) {

       case ArticleListItem.TYPE_AD:

           ......

           mTitleView.setText(tencentAdBean.title);

           mGreenLabelView.setVisibility(VISIBLE);

           mRedLabelView.setText("");

           mRedLabelView.setVisibility(GONE);

           break;

       case ArticleListItem.TYPE_ARTICLE:

           ......

           mTitleView.setText(mzAdBean.adData.getTitle());

           mGreenLabelView.setVisibility(GONE);

           mRedLabelView.setText("ABC");

           mRedLabelView.setVisibility(VISIBLE);

           break;

    }

    比如以上对mTitleView、mGreenLabelView和mRedLabelView的操作,都是成对出现。否则ListView可能会由于Item复用,导致Item显示错乱问题

     

    防内存泄漏

     

    1.内部类,比如Handler、Listener、Callback是否是成static class

    因为非静态内部类会持有外部类的引用。

     

    2.假如子线程持有了Activity,要用弱引用来持有

    比如Request的Activity就应该用弱引用的形式,防止内存泄漏。

     

    3.要求传入Activity作为参数的函数,是否可以改用getApplicationContext()来作为参数

     

    Handler相关

     

    1.使用View.post()是否会有问题

    因为在View处于detached状态期间,post()里面的Runnable是不会被执行的。只有在此View处于attached状态时才会被执行。

     

    如果想改Runnable每次肯定会被执行,那么应该是用Handler.post来替代

     

    2.假如程序可能多次在同一个Handler里post同一个Runnable,每次post之前都应该先清空这个Handler中还没执行的该Runnable

    如:

     

    if (mCloudRun != null) {

       mHandler.removeCallbacks(mCloudRun);

       mCloudRun = null;

    }

    mCloudRun = new Runnable() {

       @Override

       public void run() {

           CloudAccelerateSwitchRequest request = newCloudAccelerateSwitchRequest();

           request.setPriority(RequestTask.PRIORITY_LOW);

           RequestQueue.getInstance().addRequest(request);

        }

    };

    mHandler.post(mCloudRun);  

    其他

     

    1.多思考某些情况下,某变量是否会为空

    而且在函数体内,处理参数前,必须加上判空语句

     

    2.回调函数是否处理好

    回调函数很容易出问题。比如网络请求的回调,需要判断此时的Aciivity等是否还存在,再进行调用。因为异步操作回来,Activity可能就消失不存在了。

    而且还要对一些可能被回收的变量进行判空。

     

    3.修改数据库后,是否把数据库的版本号+1

     

    4.启动第三方的Activity时,是否判断了该Intent能否被解析

     

    Intent sendIntent = new Intent(mContext,Demo.class);

    // 这种方式判断是否存在

    if(sendIntent.resolveActivity(getPackageManager()) != null) {

       startActivity(sendIntent);

    }

    若Activity不存在,会出现ActivityNotFoundException的异常

     

    5.新注册的Activity、Service或Provider,若AndroidManifest.xml中exported属性为true,要考虑是否会引发安全性问题

     

    <activityandroid:name="com.inkenka.DemoActivity"

               android:exported="true"/>

    因为exported属性为true时,外部应用就可以直接调用起该Activity。

    可能导致的问题:

    1)若外部应用直接启动详情页,从而让某些验证页面直接被绕过

    2)若外部应用给该Activity传递乱七八糟的Intent,可能让该应用崩溃。也就是Android中的拒绝服务漏洞

     

    5.除数是否做了非0判断

     

    6.不要在Activity的onCreate里调用PopupWindow的showAsLoaction方法,由于Activity还没被加载完,会报错

     

    功能完成后,自测时的检查点

     

    1.思考某些情况下,某个变量是否会造成空指针问题

     

    2.把手机横屏,检查布局是否有Bug

     

    3.在不同分辨率的机型上,检查布局是否有Bug

     

    4.切换到英文等外文字体下,检查外文是否能完整显示

     

    5.从低版本升级上来,会不会有问题

    比如可能会出现数据库不兼容的问题

     

    6.按下Home再返回是否正常

     

    7.熄灭屏幕再打开是否正常

     

    8.切换成其它应用再切换回来会怎样

     

    9.利用手机的开发者选项中的 “调试GPU过度绘制” ,“GPU呈现模式分析” 和 “显示FPS和功耗” 功能,看自己的新功能是否会导致过度绘制、是否会掉帧

     

    10.测试看是否影响启动速度

    adb shell am start -W 包名/Activity

     

    11.对比看APK大小是否有增大

     

    12.跑1小时Monkey,测试其稳定性

    展开全文
  • Android代码-仿安卓QQ

    2019-08-06 03:48:13
    QQ 仿安卓QQ 实现登录注册,加好友,聊天,动态等
  • Android代码-客服安卓

    2019-08-06 04:02:49
    开发者在集成游云客服功能前,需前往 游云官方网站 注册创建游云开发者帐号。 2、下载 SDK 您可以到游云官方网站下载游云Android SDK和Demo 。下载包中分为如下两部分: CustomerService Demo - 游云客服Demo和相关...
  • 金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。...

    金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.

    87b49af7f1499f3a5d894a56ba4db2bf.png

    纵观现在的游戏市场,手机游戏现在占有的比重越来越高,在按键精灵推出安卓版本之后,手游的脚本也是越来越多。

    有很多手游的脚本现在都是比较火热的,包括腾讯的《天天酷跑》这款游戏。小编我观察了下在论坛上还有贴吧里求天天酷跑脚本的人有好多。所以这周小编教大家用安卓按键精灵一步步的制作一个天天酷跑的脚本。希望大家也能从中学习到安卓脚本的制作方法。

    准备工作

    准备工具:

    按键精灵手机助手,以及按键精灵安卓版下载:http://m.anjian.com/

    安卓手机一部,或者使用安卓模拟器(海马玩、天天模拟器等等)

    PS:目前安卓按键精灵对于安卓5.0版本兼容性还不好,建议换成5.0以下的系统版本或者直接使用模拟器。为了方便之后的多分辨率调试,所以小编建议是使用模拟器配合脚本的开发和调试。(有多部手机的壕就请无视这句话

    e584a03cbee2f4540905c0e227ae8e22.gif

    )

    思路

    在制作一款游戏的脚本的时候,需要做的第一件事情就是要了解这款游戏的需求是什么。只有知道了需求之后才能明确制作的目标。

    玩过这款游戏的同学都会明白,这款游戏的需求点主要有这几种:世界匹配对战、好友送心,刷冒险模式。

    这周就给大家讲解下制作世界匹配对战的例子。

    代码思路:

    1、选择游戏模式:经典、急速、进击模式

    2、进入世界PK,匹配对手

    3、进入跑酷界面开始跑酷

    4、对战结束后重新循环开始

    常用命令

    命令名称CmpColorEx命令功能同时比较指定的多个坐标点的颜色,支持多色、偏色、相似度比较命令参数mul_color:字符串,需要对比的点xy坐标和16进制颜色,格式为(X坐标|Y坐标|16进制颜色),多个颜色用“|”号分隔,需要偏色用“-”号分隔,多个点信息用“,”号分隔,比如"100|200|FFFFFF|123456-000000,300|500|FFFFFF"sim:双精度浮点数,相似度,取值范围0-1

    命令名称FindMultiColor命令功能根据指定的多点查找颜色坐标命令参数x1:整数型,查找区域左上X坐标

    y1:整数型,查找区域左上Y坐标

    x2:整数型,查找区域右下X坐标

    y2:整数型,查找区域右下Y坐标

    first_color:要对比的16进制颜色,多个颜色用"|"号分隔,如果需要对比偏色则中间用“-”号分隔,比如"FFFFFF|123456-000000|00FF00-101010"

    sim:双精度浮点数,相似度,取值范围0-1

    offset_color:字符串,偏移颜色

    dir:整数型,查找方向.0:表示从左上向右下查找;1:表示从中心往四周查找;2:表示从右下向左上查找;3:表示从左下向右上查找;4:表示从右上向左下查找;

    intX:变参指针,返回找到的X坐标

    intY:变参指针,返回找到的Y坐标

    color:字符串,16进制颜色值,格式为"BBGGRR"

    这两条就是在编写安卓脚本时最常用也是最基础的命令。两个命令都是对比不同坐标点上的颜色来找图色的。

    不同的地方在于

    CmpColorEx 命令只能对比固定坐标点的颜色,如果每个点颜色都一致就返回1表示找到

    FindMultiColor 命令是根据第一个坐标点颜色,然后对比他的偏移点的颜色值,和按键上的多点找色是一样的

    有同学会问了:为啥不用找图命令?

    414cf6b572c5ac7c373dd29e22109b33.gif

    确实找图命令使用很简单,只要截个图就行了。但是在安卓上写脚本面临的问题就是不同手机有不同的分辨率。

    图片在不同分辨率下是不同的,总不可能把每种分辨率下都分别截图一张吧?

    用多点找色就方便了,多点在不同分辨率下他也是按照比例来换算的,所以只要使用算法进行计算,就能适应不同的分辨率手机了。(具体的计算方法会在之后的院刊中详细讲解)

    代码结构

    因为上面说的需要适配不同分辨率的原因,所以在代码的结构上和电脑版的按键精灵有所差别。具体的结构可以分为三大部分

    5bbe8a7288b61f8a94e4d6c45166d2d8.png

    这样做的好处是当游戏更新或者想要修改一些图色数据的时候可以很方便的在数据模块中修改,不用在整个脚本代码中修改。

    数据模块范例:

    1. 冒险模式 = Array(519, 1121, 604, 1208, "6CDABC
    展开全文
  • 优化部分代码V1.0 首页 知识体系 登录、注册 收藏 搜索 分享 功能 登录和注册 登录 注册首页相关 首页文章列表 首页banner体系 知识体系 知识体系下的文章收藏 收藏文章列表 收藏站内文章 取消收藏(文章列表和...
  • "注册" android :textColor= "#707070" android :textSize= "18sp" /> android :layout_width= "match_parent" android :layout_height= "1dp" android :background= "#dadada" /> ...

    不知道为啥,刚开始总出错,现在找到了,应该是书写的方法有问题,现在找到了。。把之前验证的那个方法变通了一下,但是我不知对于后面的登陆会不会有冲突,所以现在也先这么写着,等后面有问题的时候在解决吧。

    下面是regist_activity.xml文件的内容:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.elainetaylor.taoyi.ui.activity.LoginActivity"
        android:background="#f8f8f8">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#fff"
            android:orientation="horizontal">
    
            <ImageButton
                android:id="@+id/ib_back"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:src="@mipmap/icon_back" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:layout_marginEnd="50dp"
                android:layout_marginRight="50dp"
                android:gravity="center"
                android:text="注册"
                android:textColor="#707070"
                android:textSize="18sp" />
        </LinearLayout>
    
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#dadada" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="40dp"
                android:gravity="center"
                android:orientation="horizontal">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="手机"
                    android:textSize="16sp"
                    android:textColor="#707070"/>
    
                <EditText
                    android:id="@+id/et_phone"
                    android:layout_width="260dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginStart="5dp"
                    android:background="@android:color/transparent"
                    android:inputType="phone"
                    android:textColor="#5000"
                    android:textSize="14sp" />
            </LinearLayout>
    
            <View
                android:layout_width="300dp"
                android:layout_height="1dp"
                android:layout_gravity="center"
                android:layout_marginTop="10dp"
                android:background="#3000" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <LinearLayout
    
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="horizontal">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="短信验证码"
                    android:textSize="16sp"
                    android:textColor="#707070"/>
    
                <EditText
                    android:id="@+id/et_CheckMode"
                    android:layout_width="125sp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginStart="5dp"
                    android:background="@android:color/transparent"
                    android:inputType="textPassword"
                    android:textColor="#5000"
                    android:textSize="14sp" />
    
                <Button
                    android:id="@+id/btn_checkMode"
                    android:layout_width="wrap_content"
                    android:layout_height="25dp"
                    android:layout_marginBottom="8dp"
                    android:layout_marginTop="8dp"
                    android:background="#00b7ee"
                    android:text="获取验证码"
                    android:textColor="#fff"
                    android:textSize="13sp" />
            </LinearLayout>
    
            <View
                android:layout_width="300dp"
                android:layout_height="1dp"
                android:layout_gravity="center"
                android:background="#3000" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:gravity="center"
                android:orientation="horizontal">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="密码"
                    android:textSize="16sp"
                    android:textColor="#707070"/>
    
                <EditText
                    android:id="@+id/et_password"
                    android:layout_width="260dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginStart="5dp"
                    android:background="@android:color/transparent"
                    android:inputType="textPassword"
                    android:textColor="#5000"
                    android:textSize="14sp" />
            </LinearLayout>
    
            <View
                android:layout_width="300dp"
                android:layout_height="1dp"
                android:layout_gravity="center"
                android:layout_marginTop="10dp"
                android:background="#3000" />
        </LinearLayout>
    
        <Button
            android:id="@+id/btn_register"
            android:layout_width="300dp"
            android:layout_height="35dp"
            android:layout_gravity="center"
            android:layout_marginTop="30dp"
            android:background="#00b7ee"
            android:gravity="center"
            android:text="完成注册"
            android:textColor="#fff"
            android:textSize="15sp" />
    
    </LinearLayout>
    
    xml文件中,我没有做什么动画处理或者是其他的特效,下面看一下RegisterActivity.class的内容如下:

    package com.elainetaylor.taoyi.ui.activity;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.Toast;
    
    import com.avos.avoscloud.AVException;
    import com.avos.avoscloud.AVOSCloud;
    import com.avos.avoscloud.AVUser;
    import com.avos.avoscloud.LogInCallback;
    import com.avos.avoscloud.RequestMobileCodeCallback;
    import com.elainetaylor.taoyi.R;
    import com.elainetaylor.taoyi.util.TimeCountUtil;
    
    public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
        private EditText etPhone, etCheckMode, etPassword;
        private Button btnCheckMode, btnRegister;
        private ImageButton btnBack;
        private String phone, checkMode, password;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
            AVOSCloud.initialize(this, "K1Ki1nEU9GFmUK6lfVMBMeHE-9Nh9j0Va", "pwYculXduYevPHtGDk6LuI0c");
            init();
        }
    
        public void init() {
            etPhone = (EditText) findViewById(R.id.et_phone);
            etCheckMode = (EditText) findViewById(R.id.et_CheckMode);
            etPassword = (EditText) findViewById(R.id.et_password);
            btnCheckMode = (Button) findViewById(R.id.btn_checkMode);
            btnRegister = (Button) findViewById(R.id.btn_register);
            btnBack = (ImageButton) findViewById(R.id.ib_back);
            btnCheckMode.setOnClickListener(this);
            btnRegister.setOnClickListener(this);
            btnBack.setOnClickListener(this);
        }
    
    
        public static boolean isPhoneNum(String phone) {
            String tel = "[1][34578]\\d{9}";
            if (TextUtils.isEmpty(phone)) {
                return false;
            } else {
                return phone.matches(tel);
            }
        }
    
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.ib_back:
                    finish();
                    break;
                case R.id.btn_checkMode:
                    phone = etPhone.getText().toString();
                    if (phone.isEmpty()) {
                        Toast.makeText(RegisterActivity.this, "亲,请输入手机号哦", Toast.LENGTH_SHORT).show();
                    } else if (!isPhoneNum(phone)) {
                        Toast.makeText(RegisterActivity.this, "亲,请输入正确的手机号哦", Toast.LENGTH_SHORT).show();
                    } else {
                        getCheckMode(phone);
                    }
                    break;
                case R.id.btn_register:
                    phone = etPhone.getText().toString();
                    checkMode = etCheckMode.getText().toString();
                    password = etPassword.getText().toString();
                    if (phone.isEmpty()) {
                        Toast.makeText(RegisterActivity.this, "亲,请输入手机号哦", Toast.LENGTH_SHORT).show();
                    } else if (!isPhoneNum(phone)) {
                        Toast.makeText(RegisterActivity.this, "亲,请输入正确的手机号哦", Toast.LENGTH_SHORT).show();
                    } else if (checkMode.isEmpty()) {
                        Toast.makeText(RegisterActivity.this, "亲,请输入验证码哦", Toast.LENGTH_SHORT).show();
                    } else if (password.isEmpty() || password.length() < 6) {
                        Toast.makeText(RegisterActivity.this, "亲,请输入超过六位的秘密哦", Toast.LENGTH_SHORT).show();
                    } else {
                        isCheckModeR(phone, checkMode);
                    }
                    break;
            }
        }
    
        public void getCheckMode(String phone) {
            AVOSCloud.requestSMSCodeInBackground(phone, new RequestMobileCodeCallback() {
                @Override
                public void done(AVException e) {
                    if (e == null) {
                        Toast.makeText(RegisterActivity.this, "获取验证码中", Toast.LENGTH_SHORT).show();
                        changeBtnCheckModeStyle();
                    } else {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        public void changeBtnCheckModeStyle() {
            TimeCountUtil timeCountUtil = new TimeCountUtil(this, 60000, 1000, btnCheckMode);
            timeCountUtil.start();
        }
    
        public void isCheckModeR(String phone, String checkMode) {
            AVUser.signUpOrLoginByMobilePhoneInBackground(phone, checkMode, new LogInCallback<AVUser>() {
                @Override
                public void done(AVUser avUser, AVException e) {
                    if (e == null) {
                        Toast.makeText(RegisterActivity.this, "亲,注册成功", Toast.LENGTH_SHORT).show();
                    } else if (e.getCode() == 214) {
                        Toast.makeText(RegisterActivity.this, "亲,该手机号已经注册,请登录", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(RegisterActivity.this, "亲,您的网络有点问题", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }
    
    之前我也说过,我用的是leanCloud的后台,所以调用了一下相关的API。基本的注册功能已经实现,但是总觉得还有点小缺陷,不知道在哪里。。。

    展开全文
  • 安卓登陆与注册

    2017-06-15 23:12:24
    正常一个安卓应用必不可少的功能就是登录与注册了,今天我们说说android中登录&注册。 先理一下简单流程: (一)SQLiteOpenHelper,进入APP后建库建表。 注册功能实现:  注册功能非空校验,数据库添加数据...
  • 昨天发表的用户注册用户的方法有问题,忽略了密码这个问题,才发现所谓的手机号快捷登陆时有一定的缺陷的,官方的Api中给了得方法不能直接修改原密码,需要...下面看一下,我改过的用户注册功能的代码: 下面是regis
  • 一个操作简单、支持断点续传、安全性能较高的安卓应用更新库 特点 步骤简单,几行代码就搞定 用户实现是否更新接口,有助于用户自定义 断点续传,断网后,当启动网络后继续下载 安全,代码操作进行大量捕获异常,...
  • 在android的应用中越来越多的包含了网络互动功能,这就带来了注册,登陆账号功能。本文完整的介绍对话框的方式实现用户登陆功能。登陆效果: 应用程序判断当前用户还未登陆,弹出登陆对话框,用户输入账号和密码信息...
  • 一、代码注入法--让程序自己吐出注册码 利用android SDK的android.util.Log类输出调试信息,有Log.v(),Log.i(),Log.d(),Log.w(),Log.e()五个调试信息的输出方法,v表示verbose类型信息、d表示debug类信息、i表示...
  • 注册广播的方式一般有两种,在代码注册何在AndroidMainfest.xml中注册,其中前者也被称为动态注册,后者被称为静态注册。 要创建一个广播接收器,就要创建一个类,让它继承BroadcastReceiver,并重写父类的onRecei....
  • Android手机电池电量监控模块示例源代码,生成安卓电池记录文件:/sdcard/BatteryDog/battery.csv ,该文件包含时间、电量信息、温度和电压以及一些简单的图形。四个源码文件:  BatteryDog_Service继承了服务...
  • 可以直接复制使用。最近客户有个小需求:在一个android系统平台上一开机就自动播放SD卡某文件目录下的视频文件。 需求比较简单,不多说了,直接...1 首先配置 AndroidManifest.xml 注册一个开机服务广播 主要代码如下:
  • 功能介绍: 分为两个代码 一个是客户端 一个是服务端 通过服务端tcp检测 等待客户端连接 。 并且对客户端的信息做出相应处理。例如 : 客户端可以注册账号、登陆账号 、查看在线用户、查看在线用户信息、以及与在线...
  • 支付 、首页 、热卖 、商品大全 、购物车 、我的 、商品列表 、商品详情 、注册/登录 、收货地址 、我的订单 、我的收藏 ..... 下面是项目中使用的相关技术:  同时课程中使用了Android5.0的最新技术:Toolbar,...
  • 安卓通过Json注册登录

    千次阅读 2017-04-01 13:53:42
    对于刚开始做安卓的来说,可能一个好的Demo比什么都来得快,但是最近在做安卓登录注册的时候,发现基本找不到我想要的东西,无奈只好硬着头皮做,好在不负付出,终于搞定,也算是给自己一个交待。 从结构上说,这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 702
精华内容 280
关键字:

安卓注册代码