Bmob 开发 Android程序快速入门 11 其他功能

                         Bmob 开发 Android程序快速入门 11 其他功能

获取服务器时间

在Bmob对象中提供了一个静态方法,用于获取服务器时间。

Bmob.getServerTime(MainActivity.this, new GetServerTimeListener() {
    @Override
    public void onSuccess(long time) {
        // TODO Auto-generated method stub
        SimpleDateFormat formatter = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm");
        String times = formatter.format(new Date(time * 1000L));
        toast("当前服务器时间为:" + times);
    }

    @Override
    public void onFailure(int code, String msg) {
        // TODO Auto-generated method stub
        toast("获取服务器时间失败:" + msg);
    }
});

 

短信服务

由于Bmob官方对外提供的服务都是免费的,而短信服务产生的费用我们无法把控,因此短信服务的功能我们没有直接对外提供,而主要针对有需要的合作客户。如果你有这方面的需要,可以联系我们的技术客服琪琪(QQ:2395453054)。

短信服务的功能包括:

  • 短信验证码服务(注册和找回密码等);
  • 短信模板服务(需要你先设定短信模板,方便运营商审核,不支持法律禁止或者与政策相违背的短信服务);
  • 可自定义短信后缀,如“尊敬的*,你购买的商品已经在快递中,请注意查收。【Bmob快递】”,其中Bmob快递就是短信后缀,可以替换为你的公司名称。

 

云端代码的调用

很多时候,单纯的前端代码是不能完成全部事情的,一些重要和复杂的业务逻辑还是希望能够在服务端中执行。比如:对比较大量的比赛数据进行排序,对某个网站进行资料采集和处理,获取用户的IP信息,等等。Bmob不仅提供了云端存储,还开放了云端的业务逻辑代码功能,也就是云端代码。

相关云端代码的使用,大家可以参考开发文档: http://docs.bmob.cn/cloudcode/developdoc/index.html?menukey=develop_doc&key=develop_cloudcode

云端代码的执行有多种方法:

其中,在SDK中调用云端代码的方法如下:

AsyncCustomEndpoints ace = new AsyncCustomEndpoints();
//第一个参数是上下文对象,第二个参数是云端代码的方法名称,第三个参数是上传到云端代码的参数列表(JSONObject cloudCodeParams),第四个参数是回调类
ace.callEndpoint.callEndpoint(MainActivity.this, cloudCodeName, params, 
    new CloudCodeListener() {
            @Override
            public void onSuccess(Object object) {
                // TODO Auto-generated method stub
                toast("云端usertest方法返回:" + object.toString());
            }
            @Override
            public void onFailure(int code, String msg) {
                // TODO Auto-generated method stub
                toast("访问云端usertest方法失败:" + msg);
            }
        });

 

地理位置

Bmob允许用户根据地球的经度和纬度坐标进行基于地理位置的信息查询。通过在BmobObject的查询中添加一个BmobGeoPoint的对象查询,你就可以实现轻松查找出离当前用户最接近的信息或地点的功能。

创建地理位置对象

首先需要创建一个BmobGeoPoint对象。例如,创建一个东经116.39727786183357度,北纬39.913768382429105度的BmobGeoPoint对象:

BmobGeoPoint point = new BmobGeoPoint(116.39727786183357, 39.913768382429105);

查询地理位置信息

现在,你的数据表中有了一定的地理坐标对象的数据,这样可以测试找出最接近某个点的信息了。你可以使用BmobQuery对象的addWhereNear方法来这样做:

BmobQuery<Person> bmobQuery = new BmobQuery<Person>();
bmobQuery.addWhereNear("gpsAdd", new BmobGeoPoint(112.934755, 24.52065));
bmobQuery.setLimit(10);    //获取最接近用户地点的10条数据
bmobQuery.findObjects(this, new FindListener<Person>() {
    @Override
    public void onSuccess(List<Person> object) {
        // TODO Auto-generated method stub
        toast("查询成功:共" + object.size() + "条数据。");
    }
    @Override
    public void onError(int code, String msg) {
        // TODO Auto-generated method stub
        toast("查询失败:" + msg);
    }
});

要限制查询指定距离范围的数据可以使用addWhereWithinKilometersaddWhereWithinMilesaddWhereWithinRadians方法。

要查询一个矩形范围内的信息可以使用addWhereWithinGeoBox来实现:

BmobGeoPoint southwestOfSF = new BmobGeoPoint(116.10675, 39.711669);
BmobGeoPoint northeastOfSF = new BmobGeoPoint(116.627623, 40.143687);
BmobQuery<Person> query = new BmobQuery<Person>();
query.addWhereWithinGeoBox("gpsAdd", southwestOfSF, northeastOfSF);
query.findObjects(this, new FindListener<Person>() {
    @Override
    public void onSuccess(List<Person> object) {
        // TODO Auto-generated method stub
        toast("查询成功:共" + object.size() + "条数据。");
    }
    @Override
    public void onError(int code, String msg) {
        // TODO Auto-generated method stub
        toast("查询失败:" + msg);
    }
});

注意事项 目前有几个需要注意的地方:

  1. 每个BmobObject数据对象中只能有一个BmobGeoPoint对象。

  2. 地理位置的点不能超过规定的范围。纬度的范围应该是在-90.0到90.0之间。经度的范围应该是在-180.0到180.0之间。如果您添加的经纬度超出了以上范围,将导致程序错误。

自动更新组件

Bmob为大家提供了应用的自动更新组件,使用这个组件可以快速方便实现应用的自动升级功能。 详细的使用操作可以参考文档:http://docs.bmob.cn/android/autoupdate/index.html?menukey=otherdoc&key=autoupdate

希望对你有帮助。

猜你喜欢

转载自blog.csdn.net/qq_41204464/article/details/85231360