Bmob开发指南【android端】

作为一个开发者,数据的存储,用户的登陆,验证等操作,对程序来说是必不可少的,下面我们将从Bmob的基本信息开始讲起:

【Bmob】

官网:   http://www.bmob.cn/

帮助文档:http://www.bmob.cn/site/getdocs

基本操作:http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android

SDK下载: http://www.bmob.cn/site/sdk

【用户的基本操作】

Ⅰ用户注册:

用户注册的表有两种,一种继承BmobUser,一种继承BmobObject,但是大部分作为用户的注册使用的一般是BmobUser

JavaBean代码:

public class Students extends BmobUser {
    private int age;
    private String address;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getAge() {

        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

实现方法:

private void showRegist() {
        //用户注册的方法
        String userName=edt_user.getText().toString();
        String password=edt_password.getText().toString();
        Students stu=new Students();
        stu.setUsername(userName); //Username以及Password为Bmob中的User表,此表字段已经存在,故不可在javaBean中进行创建
        stu.setPassword(password);
        stu.setAge(21);
        stu.setEmail("[email protected]"); //测试使用,邮箱验证的功能
        stu.setAddress("滨州");
        /*
         *用户注册的提交
         */
        stu.signUp(MainActivity.this,new SaveListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this,"注册成功",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this,"注册失败"+s,Toast.LENGTH_SHORT).show();
            }
        });
    }

后台数据库:

Ⅱ用户登录:

private void showSubmit() {
        //用户登录的方法
        String userName=edt_user.getText().toString();
        String password=edt_password.getText().toString();
       final BmobUser user=new BmobUser();//创建对象,这个为Bmob创建的类
        //与数据库中的信息进行比对,成功返回成功,失败返回失败的信息
        user.setUsername(userName);
        user.setPassword(password);
        /*
         *用户登录
         */
        user.login(MainActivity.this,new SaveListener() {
            @Override
            public void onSuccess() {
                if(user.getEmailVerified())
                {
                    Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
                }else{
                    //邮箱未验证
                }
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this,"登录失败"+s,Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Ⅲ更新用户数据

private void showUpdate() {
        //用户更新的方法
        Students stu=BmobUser.getCurrentUser(MainActivity.this,Students.class);
        stu.setAddress("临沂");
        stu.setAge(25);
        stu.update(MainActivity.this,"5c8095e99b",new UpdateListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this,"更新成功",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this,"更新失败"+s,Toast.LENGTH_SHORT).show();
            }
        });
    }

Ⅳ修改密码

private void showRepassword() {
    //修改密码的方法
    final String email="[email protected]";
    BmobUser.resetPassword(MainActivity.this,email,new ResetPasswordListener() {
        @Override
        public void onSuccess() {
            Toast.makeText(MainActivity.this,"修改密码,请到"+email,Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onFailure(int i, String s) {
            Toast.makeText(MainActivity.this,"重置密码失败",Toast.LENGTH_SHORT).show();
        }
    });
}

ps:此时系统会默认向你输入的邮箱发送修改密码的邮件
-----------------------------------------------------------------------------------------------------------------------------------

【图片操作】

Ⅴ上传图片

private void submit() {
        //上传图片
        String path="sdcard/Download/shareone.jpg";
        final BmobFile file=new BmobFile(new File(path)); //创建BmobFile对象,转换为Bmob对象
        file.upload(MainActivity.this,new UploadFileListener() {
            @Override
            public void onSuccess() {
                share share=new share();
                share.setName("ShareOne");
                share.setAge(20);
                share.setIcon(file);  //设置图片
                share.save(MainActivity.this,new SaveListener() {
                    @Override
                    public void onSuccess() {
                        Toast.makeText(MainActivity.this,"上传成功",Toast.LENGTH_LONG).show();
                    }

                    @Override
                    public void onFailure(int i, String s) {
                        Toast.makeText(MainActivity.this,"上传失败"+s,Toast.LENGTH_LONG).show();

                    }
                });
            }

javaBean类:

public class share extends BmobObject {
    private String name;
    private int age;
    private BmobFile icon;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public BmobFile getIcon() {
        return icon;
    }

    public void setIcon(BmobFile icon) {
        this.icon = icon;
    }
}

后台显示:

Ⅵ下载图片

private void download() {
        //下载图片
        BmobQuery<share> query=new BmobQuery<share>();
        query.getObject(MainActivity.this,"f4514dcb9d",new GetListener<share>() {
            @Override
            public void onSuccess(share share) {
                BmobFile icon=share.getIcon();
                icon.loadImage(MainActivity.this,image);
            }

            @Override
            public void onFailure(int i, String s) {

            }
        });
    }

Ⅶ加载图片缩略图

private void load() {
        //加载缩略图
        BmobQuery<share> query_load=new BmobQuery<share>();
        query_load.getObject(MainActivity.this,"f4514dcb9d",new GetListener<share>() {
            @Override
            public void onSuccess(share share) {
                BmobFile icon=share.getIcon();
                icon.loadImageThumbnail(MainActivity.this,load_show,100,100);
            }

            @Override
            public void onFailure(int i, String s) {

            }
        });
    }

-------------------------------------------------------------------------------------------------------

【数据操作】

JavaBean类:

public class FootBaller extends BmobObject {
    private String name;
    private int age;
    private  int score;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
}

Ⅷ增加数据

private void showCreate() {
        FootBaller fb=new FootBaller();
        fb.setName("monster");
        fb.setAge(20);
        fb.setScore(100);
        fb.save(MainActivity.this,new SaveListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this,"创建成功",Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this,"创建失败"+s,Toast.LENGTH_SHORT).show();
            }
        });
    }

Ⅸ更新数据

private void update() {
        FootBaller fb=new FootBaller();
        fb.setName("MonsterLin");
        fb.setScore(80);
        fb.setAge(26);
        fb.update(MainActivity.this, "ed8f8bdd14", new UpdateListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this, "更新成功", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this, "创建失败" + s, Toast.LENGTH_SHORT).show();
            }
        });
    }

Ⅹ删除数据

private void delete() {
        FootBaller fb=new FootBaller();
        fb.setObjectId("7a01c65384"); //删除对应的ObjectId
        fb.delete(MainActivity.this,new DeleteListener() {
            @Override
            public void onSuccess() {
                Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(int i, String s) {
                Toast.makeText(MainActivity.this, "删除失败", Toast.LENGTH_SHORT).show();
            }
        });
    }

Ⅺ查询数据

private void query() {
        BmobQuery<FootBaller> query=new BmobQuery<FootBaller>();
        query.addWhereEqualTo("name","monster");
        query.findObjects(MainActivity.this,new FindListener<FootBaller>() {
            @Override
            public void onSuccess(List<FootBaller> footBallers) {
                for (FootBaller fb:footBallers)
                {
                    Toast.makeText(MainActivity.this, "查询数据成功"+fb.getName()+"---"+fb.getScore(), Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onError(int i, String s) {
                Toast.makeText(MainActivity.this, "查询失败"+s, Toast.LENGTH_SHORT).show();
            }
        });
    }

【邮箱验证】

邮箱验证参考【用户注册】板块,邮箱验证需要在你对应的Bmob下开启邮箱验证的服务

------------------------------------------------------------------------------------------------------

【小编有话说】

1.Bmob的初始化建议:

public class BaseActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        // 初始化BmobSDK
        Bmob.initialize(this, "Application ID");

然后书写的类继承BaseActivity

2.注意BmobUser与BmobObject的使用:BmobUser的使用的时候,由于这张表作为系统表,所以已经存在的字段不允许自己重复定义,否则会出现编译不通过;BmobObject的表用户可以自定任意定义字段

3.在使用Bmob的使用需要加载SDK以及配置清单文件,具体操作:http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android#index_%E5%AE%89%E8%A3%85BmobSDK

4.后续持续跟新…..

时间: 2024-10-14 20:26:30

Bmob开发指南【android端】的相关文章

12-5【打通Flutter与Android的任督二脉】Flutter Plugin开发指南-Android端实现-1

建议先学 已经实现好了这几个类. 首先以安卓模式来打开我们的项目 在asr这个目录下,导入几个类 这几个类其实是下载的百度AI语音demo里面所提供的,里面已经提供了对百度AI的使用 首先复制这个IRecogListener IRecogListener复制过来改个名字叫做OnasrListener 这里用到了RecogResult 从demo工程里面导入RecogResult 直接复制过来即可 导入RecogEventAdpter 导入后,这里的Listener需要改成OnAsrListene

12-6【打通Flutter与Android的任督二脉】Flutter Plugin开发指南-Android端实现-2

重点实现AsrPlugin, 需要打印log.就需要一个TAG,这里定义了一个TAG 然后来添加一个方法 在里面实例化MethodChannel和我们的Dart端进行关联,参数接收一个BinaryMessager 用register.messager()获取到Message 然后来实例化Plugin.传递register 构造方法,接收一个register 重要的一步 setMethodCallHandler这样我们才能处理,来自dart端的消息. 在构造方法内获取activity.要获取act

12-4【全栈皆宜】Flutter Plugin开发指南-Dart端实现

开发flutter的插件,首先来定义Dart端的接口. 创建plugin目录 创建类 这里需要用到dart端和native端通讯的channel.首先需要导入services的包 指定channe的名字要和native端统一,否则找不到 提供几个接口. 首先是start方法,参数params为可选的 停止录音的接口.和取消录音的方法 结束 原文地址:https://www.cnblogs.com/wangjunwei/p/12311152.html

移动应用安全开发指南(Android)--数据验证

概述 移动应用往往通过数据的发送.接收和处理来完成一系列功能,通常情况下,处理的数据绝大部分都来源于外部(比如网络.内部或外部存储和用户输入等),对这些数据处理不当会导致各种各样的漏洞和风险,比代码执行和信息泄漏等等. 安全准则 A.      一般性原则:对所有外部数据进行数据验证,数据验证建议采用白名单的方式,即只允许指定的字符通过,其它字符一律过滤,同时验证数据的长度和类型等. B.      使用参数化查询语句防止SQL注入(参考附录3). C.      使用WebViews时,将Ja

Android端实时音视频开发指南

简介 yun2win-sdk-Android提供Android端实时音视频完整解决方案,方便客户快速集成实时音视频功能. SDK 提供的能力如下: 发起 加入 AVClient Channel AVMember yun2win官网:www.yun2win.com SDK下载地址:http://www.yun2win.com/h-col-107.html 开发准备 注册并创建应用 到 github下载yun2winSDK及demo 下载源码详解 app为主体显示Module uikit为公共服务M

一起学Google Daydream VR开发,快速入门开发基础教程一:Android端开发环境配置一

原文因涉及翻墙信息,被强制删除,此文为补发! 准备工作 进入Google Daydream开发者官网,开启准备工作,官网地址:https://vr.google.com/daydream/developers/ -------------------------------------------------------------------------------------------------------------------- Google Daydream开发者网址: https

Bmob 开发Android程序快速入门--小demo

注册Bmob帐号 在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名.邮箱.设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了. 网站后台创建应用 登录账号进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用. 获取应用密钥和下载SDK 选择你要开发的应用,点击该应用下方对应的“应用密钥” 在跳转页面,获取Application

移动应用安全开发指南(Android)--完结篇(http://www.bubuko.com/infodetail-577312.html)

1.认证和授权 概述 认证是用来证明用户身份合法性的过程,授权是用来证明用户可以合法地做哪些事的过程,这两个过程一般是在服务器端执行的,但也有的APP出于性能提升或用户体验等原因,将其做在客户端完成,由此导致客户端绕过等问题. 安全准则 在客户端做认证和授权是很难保证安全的,所以应该把认证和授权做在服务器端.如果确实有特殊的需求,可以和安全工程师进行沟通做单一case分析. 尽可能避免在设备上存储用户名和密码,可以使用登录认证后获得的token进行鉴权(同时注意控制token的有效期). 详细描

开发者必看|Android 8.0 新特性及开发指南

背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 Android 系统,今年为 Android 8.0.谷歌在今年3 月21日发布 Android 新系统开发者预览版时已给新系统取名为 Android O.自2008 年发布以来, Android 依靠 Google 的生态运作,全球市场份额在2016年底已超过85% .而近几年依靠 Android 发展起来的智能手机厂商不断增加, Android 生态大家庭也正在不断壮大. Androi