打印

【我是个快乐的搬运工连载系列⑥】之如何修改设备的名...

[复制链接]
814|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TE, ST, se, ic, vi
注:本帖为转载系列,征得“半颗心脏”博主(我老乡)的同意。哎呀,老家人才还是蛮多的

原贴地址:第一篇:认识开源框架结构,导入PK、APP的id和secret。
                 第二篇:详细分析在设备列表的代码块,如何修改自定义的设备图片。
                 第三篇 : 分析设备详情界面的中如何发送各种指令到云端:boolean、int、String类型。
                 第四篇 : 分析怎么做好自己的指令是否成功发送到云端对应的逻辑处理                   
                 第五篇 : 分析怎么样把云端设备的信息状态同步到手机显示。
                 第五篇 :如何修改设备的名字,并且添加描述信息。   (这是第六篇)

1、 认识无所不在的类 GizWifiDevice.class

  • 对于这个类,官方的文档如图上“简单”解释的!以鄙人的理解,可以大意这个意思:


    • ①、这个GizWifiDevice类出来的对象,是包含一个对应着真实设备的任何信息,包括设备的Mac地址、产品名、PK和PS等。。。 你只要想获取到任何关于设备的信息,都可以从这个对象中获取。

    • ②、最重要的是,这个设备是从GizWifiDevice类分配出来的,并不可以 new 哦!




  • 于是乎,我们可以在这个类中发现这两个方法。


    • getRemark() :作用是获取设备的备注信息。设备绑定后可以修改,默认为空。返回类型String,返回是 设备的备注信息。

    • getAlias() : 作用获取设备的别名。设备绑定后可以修改,默认为空。返回类型 String , 返回的是该设备在本地APP的别名,其他手机是无法看到的。







2、本节要说的“主角” :setCustomInfo() 方法 。
  • 至于为什么要说setCustomInfo()方法是本节的主角呢?上面我们已经提到任何一个设备都是拥有getRemark() 与 getAlias() ,所以简单说:任何设备都是修改其 别名和备注信息。

  • 所以,我们得知道这两个信息从哪个方法可以修改?没错!就是 setCustomInfo() 方法。下面是官方文档的解释,这已经非常清楚明了。我就不啰嗦了!





3、 具体代码如何修改别名。
  • 为了简单明了如何修改!我这里就利用官网官方在今年三月份新推出的 “自动生成代码”功能,其生成的代码如下:
    • 其实,官网的做法是在 一个弹窗Dialog 里面放两个文本编辑控件EditText,当用户点击时候,就获取其EditText里面的值,判断是否为空?再设置!


/**
     * Description:设置设备别名与备注
     */
    private void setDeviceInfo() {

        final Dialog mDialog = new AlertDialog.Builder(this).setView(new EditText(this)).create();
        mDialog.show();

        Window window = mDialog.getWindow();
        window.setContentView(R.layout.alert_gos_set_device_info);

        final EditText etAlias;
        final EditText etRemark;
        etAlias = (EditText) window.findViewById(R.id.etAlias);
        etRemark = (EditText) window.findViewById(R.id.etRemark);

        LinearLayout llNo, llSure;
        llNo = (LinearLayout) window.findViewById(R.id.llNo);
        llSure = (LinearLayout) window.findViewById(R.id.llSure);

        if (!TextUtils.isEmpty(mDevice.getAlias())) {
            setEditText(etAlias, mDevice.getAlias());
        }
        if (!TextUtils.isEmpty(mDevice.getRemark())) {
            setEditText(etRemark, mDevice.getRemark());
        }

        llNo.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                mDialog.dismiss();
            }
        });

        llSure.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (TextUtils.isEmpty(etRemark.getText().toString())
                        && TextUtils.isEmpty(etAlias.getText().toString())) {
                    myToast("请输入设备别名或备注!");
                    return;
                }
                mDevice.setCustomInfo(etRemark.getText().toString(), etAlias.getText().toString());
                mDialog.dismiss();
                String loadingText = (String) getText(R.string.loadingtext);
                progressDialog.setMessage(loadingText);
                progressDialog.show();
            }
        });

        mDialog.setOnDismissListener(new OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                hideKeyBoard();
            }
        });
    }










相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:21ic公开课专区:http://open.21ic.com/ 21ic资料下载中心:http://dl.21ic.com/ 21ic项目外包中心:http://project.21ic.com/ 杰杰欢迎大家有空常来赛事专区逛逛

131

主题

3790

帖子

63

粉丝