#
whycq
2023-05-04 9c03b75ea7dfdc210568fae90927060ffc7a85c3
#
4个文件已修改
15个文件已添加
4699 ■■■■ 已修改文件
common/bluetooth.js 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/mock/index.js 610 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/print.js 318 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
nativeplugins/Hanyin-Plugin/android/AndroidManifest.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
nativeplugins/Hanyin-Plugin/android/META-INF/com/android/build/gradle/aar-metadata.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
nativeplugins/Hanyin-Plugin/android/R.txt 2471 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
nativeplugins/Hanyin-Plugin/android/classes.jar 补丁 | 查看 | 原始文档 | blame | 历史
nativeplugins/Hanyin-Plugin/android/hanyin_plugin1.0.4.aar 补丁 | 查看 | 原始文档 | blame | 历史
nativeplugins/Hanyin-Plugin/android/libs/CPCL_V1.07.jar 补丁 | 查看 | 原始文档 | blame | 历史
nativeplugins/Hanyin-Plugin/android/proguard.txt 补丁 | 查看 | 原始文档 | blame | 历史
nativeplugins/Hanyin-Plugin/package.json 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/print/printUNI.vue 820 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/actionsType.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/gettersType.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/index.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/modules/bluetooth.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/bluetooth.js
New file
@@ -0,0 +1,310 @@
import Vue from 'vue';
let main, Context, BManager, BluetoothAdapter, BAdapter, BluetoothDevice, IntentFilter;
import {SET_INFODATA,SET_CONNECTBLEDATA} from '@/store/actionsType.js';
import {GET_CONNECTBLEDATA} from '@/store/gettersType.js';
/**
 * 蓝牙初始化和注册
 */
Vue.prototype.$init_bluetooth = function(){
    console.log('蓝牙初始化');
    let _this = this;
    //获取android应用Activity活动对象
    main = plus.android.runtimeMainActivity();
    //引入Context类
    Context = plus.android.importClass("android.content.Context");
    // Context.BLUETOOTH_SERVICE  获取Context类的静态常量(蓝牙服务,获取BluetoothManager,以使用蓝牙)
    BManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
    //获取蓝牙适配器对象类
    BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
    //蓝牙本地适配器(对象)
    BAdapter = BluetoothAdapter.getDefaultAdapter();
    //引入蓝牙设备类(创建与相应设备的连接或查询有关该设备的信息,例如名称,地址,类和绑定状态)
    BluetoothDevice = plus.android.importClass('android.bluetooth.BluetoothDevice');
    //引入过滤器类 (IntentFilter可以匹配Intent中的动作,类别,数据)
    IntentFilter = plus.android.importClass('android.content.IntentFilter');
}
/**
 * 检查蓝牙是否开启
 * 1.用户没有开启,提示开启
 * 2.用户蓝牙已经开启
 */
Vue.prototype.$check_bluetooth_open = function(){
    let _this = this;
    /**
     * BAdapter.isEnabled(); 判断蓝牙是否打开
     * BAdapter.enable();  //开启蓝牙
     * BAdapter.disable();  //关闭蓝牙
     */
    return new Promise((resolve,reject)=>{
        if (!BAdapter.isEnabled()) {
            //蓝牙未打开
            uni.showModal({
                title:"提示",
                content:"蓝牙未开启,是否开启蓝牙~",
                success:function(res){
                    if (res.confirm) {
                        //开启蓝牙
                        BAdapter.enable();
                        resolve(true);
                    }else if(res.cancel){
                        resolve(false);
                    }
                }
            })
            // 后续提示框提示或用户手动打开
        } else {
            //蓝牙已打开
            resolve(true);
        }
    })
}
/**
 * 检测手机是否已经连接蓝牙设备
 */
Vue.prototype.$check_bluetooth_connect = function(){
    let _this = this;
    // 先清空vuex原来已有的数据
    _this.$store.dispatch(SET_CONNECTBLEDATA,[]);
    return new Promise((resolve,reject)=>{
        // 获取android应用已配对的蓝牙设备类
        let lists = BAdapter.getBondedDevices();
        // 引入类
        plus.android.importClass(lists);
        // 获取已配对蓝牙设备的个数
        let len = lists.size();
        // iterator()  把一个容器的所有对象,做成一个线性表(List),而iterator本身是一个指针
        let iterator = lists.iterator();
        // console.log(iterator.hasNext());
        plus.android.importClass(iterator);
        /**
         * iterator.hasNext()  true如果迭代具有更多元素
         * iterator.next() 放回迭代中的下一个元素
         * iterator.remove() 从基础集合中移除此迭代器返回的最后一个元素(可选操作)
         */
        while (iterator.hasNext()) {
            let d = iterator.next();
            plus.android.importClass(d);
            let matchList = {
                name: d.getName(),
                mac: d.getAddress()
            }
            console.log(matchList);
            _this.$store.dispatch(SET_CONNECTBLEDATA,matchList);
            resolve({code:true,msg:matchList});
        }
        //获取一个已连接的设备
        // plus.android.importClass(BManager); //引入相关的method函数
        // //蓝牙适配器
        // let BAdapter = BManager.getAdapter();
        // // console.log(BAdapter);
        // plus.android.importClass(BAdapter); //引入相关的method函数,这样之后才会有isEna;
        // let lists = BAdapter.getBondedDevices();
        // // console.log(lists);
        // plus.android.importClass(lists);
        // let iterator = lists.iterator();
        // // console.log(iterator);
        // plus.android.importClass(iterator);
        // // console.log(iterator.hasNext());
        // if(iterator.hasNext()){   //判断下一个元素的有无
        //     let d = iterator.next();
        //     plus.android.importClass(d);
        //     //已连接蓝牙的数据
        //     // console.log(d.getAddress());
        //     console.log(d.getAddress() + "----" + d.getName());
        //     // _this.match_list = {
        //     //     name: d.getName(),
        //     //     mac: d.getAddress()
        //     // };
        //     let matchList = {
        //         name: d.getName(),
        //         mac: d.getAddress()
        //     }
        //     _this.$store.dispatch(SET_CONNECTBLEDATA,matchList);
        //     // console.log(_this.$store.getters.GET_CONNECTBLEDATA)
        //     /**
        //      * 连接打印机
        //      */
        //     resolve({code:true,msg:matchList});
        // }else{
        //     resolve({code:false})
        // }
    })
}
/**
 * 打开蓝牙
 */
Vue.prototype.$open_bluetooth = function(){
    let _this = this;
    return new Promise((resolve,reject)=>{
        if (!BAdapter.isEnabled()) {
            BAdapter.enable(); //启动蓝牙
            uni.showToast({
                icon: "none",
                title: '蓝牙已打开',
                duration: 3000
            })
            resolve(true);
        }
    })
}
/**
 * 关闭蓝牙
 */
Vue.prototype.$close_bluetooth = function (){
    let _this = this;
    if (BAdapter.isEnabled()) {
        BAdapter.disable(); //关闭蓝牙
        uni.showToast({
            icon: "none",
            title: '蓝牙已关闭',
            duration: 2000
        })
    } else {
        uni.showToast({
            icon: "none",
            title: '蓝牙已关闭',
            duration: 2000
        })
    }
}
/**
 * 搜索蓝牙设备
 */
Vue.prototype.$search_bluetooth = function(){
    let _this = this;
    let obj = {};
    return new Promise((resolve,reject)=>{
        // console.log(BAdapter.isEnabled());
        // console.log(JSON.stringify(_this.$store.getters));
        // BAdapter.isconnect("DC:1D:30:7C:74:96");
        //判断蓝牙是否开启
        if(!BAdapter.isEnabled()) {
            uni.showModal({
                title:"提示",
                content:"蓝牙未开启,是否开启蓝牙~",
                success:function(res){
                    if (res.confirm) {
                        console.log('用户点击确定');
                        obj.code = false;  //用户点击确定,开启蓝牙
                        obj.msg = "蓝牙未开启";
                        resolve(obj);
                        // _this.$open_bluetooth();
                    }else if(res.cancel){
                        // resolve()
                        obj.code = null;
                        resolve(obj);
                    }
                }
            })
        }else{
            obj.code = true;
            obj.msg = "开启搜索蓝牙";
            resolve(obj);
        }
    })
}
/**
 * 监听蓝牙设备信息
 */
Vue.prototype.$search_pipei=function(){
    let timer = null;
    let _this = this;
    //提示蓝牙开启权限访问
    uni.openBluetoothAdapter({
        success(res) {
            if (res.errMsg === "openBluetoothAdapter:ok") {
                //这里是开启蓝牙搜寻
                uni.startBluetoothDevicesDiscovery({
                    success: (res) => {
                        console.log('startBluetoothDevicesDiscovery success', res)
                        uni.showLoading({
                            title: "蓝牙搜索中...",
                            mask: true
                        })
                        //每次搜索都把之前的清空
                        // _this.bArray = [];
                        // _this.no_match_list = [];
                        _this.$store.dispatch(SET_INFODATA,[]);
                        let bArray = [];  //用于蓝牙去重
                        let filter = new IntentFilter();   //实例化过滤器类
                        let BDevice = new BluetoothDevice();  //实例化蓝牙设备类
                        // let connect = _this.$store.state.Bluetooth.connectBLEData;
                        // console.log("已连接:" + JSON.stringify(connect));
                        BAdapter.startDiscovery(); //开启搜索
                        let receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
                            onReceive: function(context, intent) { //回调
                                try {
                                   plus.android.importClass(intent);
                                   if (intent.getAction() == "android.bluetooth.adapter.action.DISCOVERY_FINISHED") {
                                        main.unregisterReceiver(receiver); //取消监听
                                   } else {
                                       // Intent中获取设备对象
                                      BDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                                      console.log(BDevice.getName() + "---" + BDevice.getAddress());
                                      // 判断如果蓝牙没有名称则不显示
                                      if (BDevice.getName() !== null) {
                                        //蓝牙去重
                                        let address = BDevice.getAddress();
                                        //已经连接的蓝牙
                                        if(bArray.indexOf(address) == -1){
                                            bArray.push(address);
                                            _this.$store.dispatch(SET_INFODATA,{
                                                name: BDevice.getName(),
                                                mac: BDevice.getAddress()
                                            })
                                        }
                                      }
                                      //如果intent为空则取消蓝牙监听
                                      if (BDevice == null) {
                                          main.unregisterReceiver(receiver); //取消监听
                                          uni.hideLoading()
                                          //获取已匹配的蓝牙
                                          // that.bluetooth_list()
                                          return;
                                      }
                                      if(timer != null){
                                          clearTimeout(timer);
                                      }
                                      timer = setTimeout(()=>{
                                          main.unregisterReceiver(receiver); //取消监听
                                          uni.hideLoading();
                                      },3000);
                                   }
                                } catch (e) {
                                    uni.showToast({
                                        icon: "none",
                                        title: "蓝牙搜寻错误~",
                                        duration: 3000,
                                        mask: true
                                    })
                                }
                            }
                        });
                        filter.addAction(BDevice.ACTION_FOUND);   //可发现
                        filter.addAction(BAdapter.ACTION_DISCOVERY_STARTED);
                        filter.addAction(BAdapter.ACTION_DISCOVERY_FINISHED);  //搜索结果
                        filter.addAction(BAdapter.ACTION_STATE_CHANGED);
                        main.registerReceiver(receiver, filter); //注册监听
                    },
                    fail: (err) => {
                        uni.showToast({
                            icon: "none",
                            title: "蓝牙搜寻失败~",
                            duration: 3000,
                            mask: true
                        })
                    }
                })
            }
        },
        fail(err) {
            uni.showToast({
                icon: "none",
                title: "蓝牙搜索失败"
            })
        }
    })
}
common/mock/index.js
New file
@@ -0,0 +1,610 @@
/*
 * mock 存放全局静态数据
 */
import Vue from 'vue';
const allMock = {
    test: ['静态数据'],
    //面单数据
    order_data: {
        CUSTOMER_CODE: "00001",
        CUSTOMER_NAME: "宋小姐",
        BILL_CODE: "JYM100005228492",
        PRINT_DATE_REAL:"2020-09-08 17:31:21",
        SEND_MAN: "城南旧事",
        SEND_MAN_PHONE: "176xxxx7418",
        SEND_PROVINCE: "广东省",
        SEND_CITY: "xx市",
        SEND_COUNTY: "xx区",
        SEND_MAN_COMPANY: "城南往事",
        ACCEPT_MAN: "董小姐",
        ACCEPT_MAN_PHONE: "176xxxx7418",
        ACCEPT_MAN_ADDRESS: "广东省xxxxxxxxxxxxxxxxxxxxxxxx",
        PIECE_NUMBER: "11",
        PAYMENT_TYPE: "到付",
        RETURN_BILL_TYPE: "邮寄",
        SETTLEMENT_WEIGHT: "11kg",
        // TRANSFER_CODE: "JDVX9999999999999",
        REMARK: "次物品小心配送,易碎品,备注这是备注这是备注这是备注这是备注注这是备注这是备注注",
        PACK_TYPE: "货物类",
        FREIGHT: "120",
        //https://bkimg.cdn.bcebos.com/pic/2934349b033b5bb571dc8c5133d3d539b600bc12?x-bce-process=image/resize,m_lfit,w_268,limit_1/format,f_jpg
        QR_CODE_IMAGE:"",
    },
    printTemplate: {
        "pagConfig": {
            "pageLeft": "0",
            "pageTop": "0",
            "pageHeight": "48",
            "pageWidth": "74"
        },
        "printItem": [
            {
                "top": "2",
                "left": "0",
                "textAlign": "start",
                "width": "270",
                "text": "",
                "type": "cross",
                "fontWeight": "400",
                "height": "3"
            },
            {
                "top": "180",
                "left": "0",
                "textAlign": "start",
                "width": "270",
                "text": "",
                "type": "cross",
                "fontWeight": "400",
                "height": "3"
            },
            {
                "top": "2",
                "left": "0",
                "textAlign": "start",
                "width": "3",
                "text": "",
                "type": "vertical",
                "fontWeight": "400",
                "height": "180"
            },
            {
                "top": "2",
                "left": "270",
                "textAlign": "start",
                "width": "3",
                "text": "",
                "type": "vertical",
                "fontWeight": "400",
                "height": "180"
            },
            {
                "top": "140",
                "left": "0",
                "textAlign": "start",
                "width": "281",
                "text": "",
                "type": "cross",
                "fontWeight": "400",
                "height": "4"
            },
            {
                "top": "70",
                "left": "0",
                "textAlign": "start",
                "width": "140",
                "text": "",
                "type": "cross",
                "fontWeight": "400",
                "height": "4"
            },
            {
                "top": "2",
                "left": "40",
                "textAlign": "start",
                "width": "3",
                "text": "",
                "type": "vertical",
                "fontWeight": "400",
                "height": "180"
            },
            {
                "top": "2",
                "left": "140",
                "textAlign": "start",
                "width": "3",
                "text": "",
                "type": "vertical",
                "fontWeight": "400",
                "height": "140"
            },
            // 静态文字
            {
                "top": "35",
                "left": "7.6",
                "textAlign": "left",
                "barcodetype": "128Auto",
                "width": "38",
                "fontSize": 9,
                "text": "料号",
                "type": "text",
                "fontWeight": "400",
                "height": "19"
            },
            // {
            //     "top": "304",
            //     "left": "0",
            //     "textAlign": "start",
            //     "width": "281",
            //     "text": "",
            //     "type": "cross",
            //     "fontWeight": "400",
            //     "height": "4"
            // },
            // {
            //     "top": "342",
            //     "left": "0",
            //     "textAlign": "start",
            //     "width": "281",
            //     "text": "",
            //     "type": "cross",
            //     "fontWeight": "400",
            //     "height": "4"
            // },
            // {
            //     "top": "380",
            //     "left": "0",
            //     "textAlign": "start",
            //     "width": "281",
            //     "text": "",
            //     "type": "cross",
            //     "fontWeight": "400",
            //     "height": "4"
            // },
            // {
            //     "top": "102.6",
            //     "left": "22.8",
            //     "textAlign": "start",
            //     "width": "4",
            //     "text": "",
            //     "type": "vertical",
            //     "fontWeight": "400",
            //     "height": "277"
            // },
            // {
            //     "top": "190",
            //     "left": "178.6",
            //     "textAlign": "start",
            //     "width": "3",
            //     "text": "",
            //     "type": "vertical",
            //     "fontWeight": "400",
            //     "height": "114"
            // },
            // {
            //     "dataId": "CUSTOMER_CODE",
            //     "top": "15.2",
            //     "left": "125.4",
            //     "textAlign": "start",
            //     "width": "152",
            //     "fontSize": "7",
            //     "text": "寄件客户编号",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "top": "15.2",
            //     "left": "95",
            //     "textAlign": "left",
            //     "width": "34",
            //     "fontSize": 9,
            //     "text": "客编: ",
            //     "type": "text",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "CUSTOMER_NAME",
            //     "top": "30.4",
            //     "left": "95",
            //     "textAlign": "start",
            //     "width": "148",
            //     "fontSize": 9,
            //     "text": "寄件客户名称",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "imgUrl": "/static/img/order/barCode-1.png",
            //     "dataId": "BILL_CODE",
            //     "top": "53.2",
            //     "left": "83.6",
            //     "textAlign": "start",
            //     "barcodetype": "128Auto",
            //     "width": "200",
            //     "text": "运单号条码",
            //     "type": "barCode",
            //     "fontWeight": "400",
            //     "height": "34"
            // },
            // {
            //     "dataId": "PRINT_DATE_REAL",
            //     "top": "38",
            //     "left": "174.8",
            //     "textAlign": "start",
            //     "width": "99",
            //     "fontSize": "2",
            //     "text": "2019-5-31 18:35:30",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "15"
            // },
            // {
            //     "top": "83.6",
            //     "left": "7.6",
            //     "textAlign": "left",
            //     "barcodetype": "128Auto",
            //     "width": "38",
            //     "fontSize": 9,
            //     "text": "寄件联",
            //     "type": "text",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "top": "133",
            //     "left": "7.6",
            //     "textAlign": "left",
            //     "width": "15",
            //     "fontSize": 9,
            //     "text": "寄件",
            //     "type": "text",
            //     "fontWeight": "400",
            //     "height": "38"
            // },
            // {
            //     "top": "307.8",
            //     "left": "7.6",
            //     "textAlign": "left",
            //     "width": "15",
            //     "fontSize": 9,
            //     "text": "收件",
            //     "type": "text",
            //     "fontWeight": "400",
            //     "height": "38"
            // },
            // {
            //     "top": "224.2",
            //     "left": "7.6",
            //     "textAlign": "left",
            //     "width": "15",
            //     "fontSize": 9,
            //     "text": "运单",
            //     "type": "text",
            //     "fontWeight": "400",
            //     "height": "38"
            // },
            // {
            //     "top": "342",
            //     "left": "7.6",
            //     "textAlign": "left",
            //     "width": "15",
            //     "fontSize": 9,
            //     "text": "备注",
            //     "type": "text",
            //     "fontWeight": "700",
            //     "height": "38"
            // },
            // {
            //     "dataId": "SEND_MAN",
            //     "top": "106.4",
            //     "left": "26.6",
            //     "textAlign": "start",
            //     "width": "76",
            //     "fontSize": 9,
            //     "text": "寄件人",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "SEND_MAN_PHONE",
            //     "top": "106.4",
            //     "left": "102.6",
            //     "textAlign": "start",
            //     "width": "164",
            //     "fontSize": 9,
            //     "text": "寄件电话",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "SEND_PROVINCE",
            //     "top": "144.4",
            //     "left": "26.6",
            //     "textAlign": "start",
            //     "width": "148",
            //     "fontSize": 9,
            //     "text": "寄件-省/州",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "SEND_CITY",
            //     "top": "144.4",
            //     "left": "79.8",
            //     "textAlign": "start",
            //     "width": "80",
            //     "fontSize": 9,
            //     "text": "寄件-市",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "SEND_COUNTY",
            //     "top": "144.4",
            //     "left": "144.4",
            //     "textAlign": "start",
            //     "width": "137",
            //     "fontSize": 9,
            //     "text": "寄件-区/县",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "SEND_MAN_COMPANY",
            //     "top": "163.4",
            //     "left": "26.6",
            //     "textAlign": "start",
            //     "width": "148",
            //     "fontSize": 9,
            //     "text": "寄件公司",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "ACCEPT_MAN",
            //     "top": "197.6",
            //     "left": "30.4",
            //     "textAlign": "start",
            //     "width": "57",
            //     "fontSize": "7",
            //     "text": "收件人",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "ACCEPT_MAN_PHONE",
            //     "top": "197.6",
            //     "left": "79.8",
            //     "textAlign": "start",
            //     "width": "150",
            //     "fontSize": "9",
            //     "text": "收件电话",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "ACCEPT_MAN_ADDRESS",
            //     "top": "228",
            //     "left": "30.4",
            //     "textAlign": "start",
            //     "width": "149",
            //     "fontSize": "9",
            //     "text": "收件地址",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "PIECE_NUMBER",
            //     "top": "197.6",
            //     "left": "235.6",
            //     "textAlign": "start",
            //     "width": "26",
            //     "fontSize": "9",
            //     "text": "件数",
            //     "type": "field",
            //     "fontWeight": "700",
            //     "height": "19"
            // },
            // {
            //     "top": "197.6",
            //     "left": "182.4",
            //     "textAlign": "left",
            //     "width": "54",
            //     "fontSize": 9,
            //     "text": "一票多件",
            //     "type": "text",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "PAYMENT_TYPE",
            //     "top": "220.4",
            //     "left": "216.6",
            //     "textAlign": "start",
            //     "width": "34",
            //     "fontSize": 9,
            //     "text": "付款方式",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "top": "220.4",
            //     "left": "182.4",
            //     "textAlign": "left",
            //     "width": "35",
            //     "fontSize": 9,
            //     "text": "到付:",
            //     "type": "text",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "RETURN_BILL_TYPE",
            //     "top": "243.2",
            //     "left": "216.6",
            //     "textAlign": "start",
            //     "width": "30",
            //     "fontSize": "4",
            //     "text": "回单类型",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "top": "243.2",
            //     "left": "182.4",
            //     "textAlign": "left",
            //     "width": "35",
            //     "fontSize": "4",
            //     "text": "回单:",
            //     "type": "text",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "top": "311.6",
            //     "left": "26.6",
            //     "textAlign": "left",
            //     "width": "57",
            //     "fontSize": 9,
            //     "text": "月结重量:",
            //     "type": "text",
            //     "fontWeight": "700",
            //     "height": "19"
            // },
            // {
            //     "top": "311.6",
            //     "left": "106.4",
            //     "textAlign": "left",
            //     "width": "38",
            //     "fontSize": 9,
            //     "text": "运费:",
            //     "type": "text",
            //     "fontWeight": "700",
            //     "height": "19"
            // },
            // {
            //     "top": "326.8",
            //     "left": "26.6",
            //     "textAlign": "left",
            //     "width": "38",
            //     "fontSize": 9,
            //     "text": "品名:",
            //     "type": "text",
            //     "fontWeight": "700",
            //     "height": "19"
            // },
            // {
            //     "dataId": "SETTLEMENT_WEIGHT",
            //     "top": "311.6",
            //     "left": "79.8",
            //     "textAlign": "start",
            //     "width": "46",
            //     "fontSize": 9,
            //     "text": "货物总重量",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // // {
            // //     "dataId": "TRANSFER_CODE",
            // //     "top": "76",
            // //     "left": "95",
            // //     "textAlign": "start",
            // //     "width": "200",
            // //     "fontSize": 9,
            // //     "text": "JDVX9999999999999",
            // //     "type": "field",
            // //     "fontWeight": "400",
            // //     "height": "19"
            // // },
            // {
            //     "dataId": "REMARK",
            //     "top": "345.8",
            //     "left": "26.6",
            //     "textAlign": "center",
            //     "width": "247",
            //     "fontSize": 9,
            //     "text": "这是备注这是备注这是备注这是备注这是备注注这是备注这是备注注",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "30"
            // },
            // {
            //     "dataId": "PACK_TYPE",
            //     "top": "326.8",
            //     "left": "64.6",
            //     "textAlign": "start",
            //     "width": "148",
            //     "fontSize": 9,
            //     "text": "包装类型",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "dataId": "FREIGHT",
            //     "top": "311.6",
            //     "left": "140.6",
            //     "textAlign": "start",
            //     "width": "72",
            //     "fontSize": 9,
            //     "text": "111111¥",
            //     "type": "field",
            //     "fontWeight": "400",
            //     "height": "19"
            // },
            // {
            //     "imgUrl": "/unauth/download/group1/M00/00/32/CgAAA18VQ76AbbAxAAAUC5IVDw0960.png",
            //     "dataId": "undefined",
            //     "top": "0",
            //     "left": "0",
            //     "textAlign": "left",
            //     "width": "10",
            //     "text": "静态图片",
            //     "type": "img",
            //     "fontWeight": "100",
            //     "height": "10"
            // },
            // {
            //     "imgUrl": "/static/img/order/img.jpg",
            //     "dataId": "QR_CODE_IMAGE",
            //     "top": "262.2",
            //     "left": "186.2",
            //     "textAlign": "left",
            //     "width": "38",
            //     "text": "快递小哥二维码",
            //     "type": "img",
            //     "fontWeight": "400",
            //     "height": "38"
            // },
            // {
            //     "imgUrl": "/static/img/order/ewm.png",
            //     "dataId": "BILL_CODE",
            //     "top": "262.2",
            //     "left": "228",
            //     "textAlign": "start",
            //     "width": "38",
            //     "text": "运单号二维码",
            //     "type": "qrCode",
            //     "fontWeight": "400",
            //     "height": "38"
            // }
        ]
    }
}
export default allMock;
common/print.js
New file
@@ -0,0 +1,318 @@
// #ifdef APP-PLUS
const HanyinPlugin = uni.requireNativePlugin('Hanyin-Plugin'); //汉印
// #endif
import Vue from 'vue';
import store from 'store';
import {
    SET_CONNECTBLEDATA
} from '@/store/actionsType.js';
/**
 * 1.确定好模板
 * 2.用户选择蓝牙后初始化打印机值
 * 3.等待客户点击打印
 */
let title;
//模板数据
const printTemplate = Vue.prototype.$Mock.printTemplate;
let {pagConfig,printItem} = printTemplate;
        // pageLeft = Number(pagConfig.pageLeft);
        // pageTop = Number(pagConfig.pageTop);
        // pageHeight = Number(pagConfig.pageHeight);
        // pageWidth = Number(pagConfig.pageWidth);
const MULTIPLE = 8; //打印机计算比例
let pageLeft=Number(pagConfig.pageLeft) || 0,  //打印模板整体左偏移量
    pageTop=Number(pagConfig.pageTop) || 0,   //打印模板整体上偏移量
    pageHeight=Number(pagConfig.pageHeight) || 0,  //打印模板页面高度
    pageWidth=Number(pagConfig.pageWidth) || 0;  //打印模板页面宽度
const TRANSFORM = 3.8;  //尺寸转换单位
//数据处理参数对象
const filterData = {
    size_conversion:function(value){
        return Math.round(Number(value) / TRANSFORM);
    }
}
const instructions = {
    "cross":function(list,data,printIndex){
        let x0 = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE;
        let y0 = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE;
        let x1 = ((filterData.size_conversion(list.width) + filterData.size_conversion(list.left))  + pageLeft < pageWidth ? (filterData.size_conversion(list.width) + filterData.size_conversion(list.left) + pageLeft) : pageWidth)  * MULTIPLE
        let y1 = y0;
        let width = filterData.size_conversion(list.height) > 0 ? filterData.size_conversion(list.height) : 1;
        // console.log(x0,y0,x1,y1,width);
        //水平线
        HanyinPlugin.Line({x0,y0,x1,y1,width}, result => {
            console.log(result);
        })
    },
    "vertical":function(list,data,printIndex){
        let x0 = (filterData.size_conversion(Number(list.left))  + pageLeft) * MULTIPLE;
        let y0 = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE;
        let x1 = x0;
        let y1 = (filterData.size_conversion(Number(list.height)) + filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE;
        let width = filterData.size_conversion(list.width) > 0 ? filterData.size_conversion(list.width) : 1;
        // console.log(x0,y0,x1,y1,width);
        //垂直线
        HanyinPlugin.Line({x0,y0,x1,y1,width}, result => {
            console.log(result);
        })
    },
    "text":function(list,data,printIndex){
        let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE;
        let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE;
        let width = filterData.size_conversion(Number(list.width)) * MULTIPLE;
        let height = filterData.size_conversion(Number(list.height)) * MULTIPLE;
        let size = Number(list.fontSize);   // 3 4 8 55
        let str = list.text;
        let isbole;
        let xAlign = "left";
        let yAlign = "left";
        if(list.textAlign === "left"){
            xAlign = "left";
        }else if(list.textAlign === "center"){
            xAlign = "center";
        }else if(list.textAlign === "right"){
            xAlign = "bottom";
        }
        isbole = Number(list.fontWeight) <= 400 ? false : true;  //加粗
        if(size >= 2 && size <= 7){
            size = 55   //16x16 或8x16,视中英文而定
        }else if(size > 7 && size <= 9){
            size = 8;   //24x24 或12x24,视中英文而定
        }else if(size > 9 && size <= 16){
            size = 3;   //20x20 或10x20,视中英文而定。
        }else{
            size = 4;   //32x32 或16x32,由ID3 字体宽高各放大2 倍
        }
        console.log(x,y,width,size,isbole,str);
        //文本(静态)  后续判断字体是否居中 如是: AutCenter 否 AutLine
        HanyinPlugin.AutLine({x,y,width,size,isbole,isdouble: false,str,type: "1"}, result => {
            console.log(result);
        })
    },
    "field":function(list,data,printIndex){
        let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE;
        let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE;
        let width = filterData.size_conversion(Number(list.width)) * MULTIPLE;
        let height = filterData.size_conversion(Number(list.height)) * MULTIPLE;
        let size = Number(list.fontSize);   // 3 4 8 55
        let isbole;
        let str = data[list.dataId];
        let xAlign = "left";
        let yAlign = "left";
        if(list.textAlign === "left" || list.textAlign === "start"){
            xAlign = "left";
        }else if(list.textAlign === "center"){
            xAlign = "center";
        }else if(list.textAlign === "right"){
            xAlign = "bottom";
        }
        isbole = Number(list.fontWeight) <= 400 ? false : true;  //加粗
        if(size >= 2 && size <= 7){
            size = 55;
        }else if(size > 7 && size <= 9){
            size = 8;
        }else if(size > 9 && size <= 16){
            size = 3;
        }else{
            size = 4;
        }
        console.log(x,y,width,size,isbole,str);
        //文本(动态)
        HanyinPlugin.AutLine({x,y,width,size,isbole,isdouble: false,str,type: "1"}, result => {
            console.log(result);
        })
    },
    "barCode":function(list,data,printIndex){
        let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE;
        let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE;
        let height = filterData.size_conversion(Number(list.height))  * MULTIPLE;
        let width = filterData.size_conversion(Number(list.width))  * MULTIPLE;
        let str = data[list.dataId];
        console.log(list);
            let undertext = true,command=0;
            if(Number(list.width) > Number(list.height)){
                //水平
                command = 0;
            }else{
                //垂直
                command = 1;
            }
            //条形码  -- 后期补充条形码type类型
            HanyinPlugin.Barcode({
                command,
                type:"code128",
                width: "1",
                ratio: "2",
                height:height + "",
                x,
                y,
                undertext,
                number: "7",
                size: "0",
                offset: "1",
                data:str
            }, result => {
                console.log(result);
            })
    },
    "img":function(list,data,printIndex){
        let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE;
        let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE;
        let url = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAAH0CAYAAABiuKiqAAAgAElEQVR4XuydCZQkRdW2owAXxG5xtFuURWn1QwUXxAV7BBUFHHdRAdtlVEDFVhR0FBH3fVBUtN0V+dQWEBHFZZRFXHoQN1Bw1x4U9MO/EXAGd6T/8ybkGJNTVRlvZN3MyK43z/EgdETkjedGVT0ZGRnZcTpEQAREQAREQAREQAREQASSJ9BJPkIFKAIiIAIiIAIiIAIiIAIi4CTuGgQiIAIiIAIiIAIiIAIi0AICEvcWJEkhioAIiIAIiIAIiIAIiIDEXWNABERABERABERABERABFpAQOLegiQpRBEQAREQAREQAREQARGQuGsMiIAIiIAIiIAIiIAIiEALCEjcW5AkhSgCIiACIiACIiACIiACEneNAREQAREQAREQAREQARFoAQGJewuSpBBFQAREQAREQAREQAREwETcFxcXd3bOPco5t59z7qHOuVGhFgEREAEREAEREAEREIElTOAq59z5zrmvOue+0ul01g26rwMV98XFxR2ccyc755YPOlC1JwIiIAIiIAIiIAIiIAItIjDnnDuw0+n8cVAxD0zcFxcXMbu+xjm9jXVQyVE7IiACIiACIiACIiACrSaw6Jzbv9PpnDWIXgxE3BcXF/d1zn19EAGpDREQAREQAREQAREQARFYYgT2G4S8Vxb3xcXF7Z1zv3fObbHEAKs7IiACIiACIiACIiACIjAIAtc75+7U6XQuq9LYIMT9e865+1cJQnVFQAREQAREQAREQAREYIkTuLDT6dy3Sh8rifuNu8fMVwlAdUVABERABERABERABERgSAjctdPp/Ca2r1XF/SXOuXfFnlz1REAEREAEREAEREAERGCICLyi0+msju1vVXHHE7KPiD256omACIiACIiACIiACIjAEBH4VqfTeUhsf6uK+5+dc8tiT656IiACIiACIiACIiACIjBEBP7S6XS2je1vVXHH3pQ6REAEREAEREAEREAEREAEAgh0Op1o/46uiLgWFxcl7gEJUhEREAEREAEREAEREAERAAGJu8aBCIiACIiACIiACIiACLSAgMS9BUlSiCIgAiIgAiIgAiIgAiIgcdcYEAEREAEREAEREAEREIEWEJC4tyBJClEEREAEREAEREAEREAEJO4aAyIgAiIgAiIgAiIgAiLQAgIS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opK4typdClYEREAEREAERGCABCTuEveBDCdg3LBhg/vPf/7jtt56a3fzm998IO0WG5G4m2BVoyIgAiIgAiIgAi0gIHGXuAcN03e9613uuOOOc6tWrXJHHnnkZnX+8Y9/uNe+9rXuk5/8pHvf+97nDjjggI1lrrrqKveLX/wi6DxjY2Purne9a8+yEvcgjCokAiIgAiIgAiKwBAlI3Fsk7uvWrXNf+cpXBj4MR0ZG3JOe9CS3zTbb9Gy7irh///vfd49//OOD4u51YZBXlrgHYVShQAL4+F9++eXuzDPPdOedd5676KKL3LXXXuvufOc7u/vd737uiU98ottzzz3dTW96074top3f//737pRTTnFnn322u+SSS9wtb3lLd//73989+clPdvvvv7+7xS1uURoVLoAvuOACd8YZZ7gf/OAH7re//W3Wzn3ucx/30Ic+NPscbb/99qXtXH311VkbX/3qVzf2aY899nAPf/jDs8/6Djvs4DqdTmk7oQUG1f9u57vuuuvchz70IffmN785YzAzM+Nufetbh4ZWmrdB5L/bScAEOXjFK17hdtppp6wPGFcWx3e+8x33ohe9yO23337u9a9/fekdT0ywIK6QoyrzQXzG/vSnP7np6Wm3du3akJA3mzwKquQV+te//uXm5uayz/OPfvSj7DsCuXvgAx/oDjroILf77ru7rbbaqrTZK6+80q1Zs8adddZZDr+D11xzTfbZu+997+tWrFjh9t1336DvhdITqcBQEZC4t0jcGQFmRnHIF/MgxH3bbbd1u+66a9cvvD//+c+Z7EjcmcypbBUCkORPfOIT7vjjj89kvdeBH9fXve51buedd+5aBGJ5+umnZ2Xww9ztgMCvXr3a7bLLLj3P89Of/tS96U1vct/85jd7lsFnCML1tKc9rac4/PCHP8zK/OxnP+vaDi4Ejj76aPf0pz+99IIkhO+g+t/rXOeff7578YtfnMlTyHdVSMwoM6j89zrfr3/96+zuJMTvHve4h5m4/+QnP3HHHHNMdp5nPOMZpeKO5YwYi+9973uDUFVhPijGP//5z92hhx7qMHkVchTv+obUycvgtwgXP6eddlrPargYP/bYYx1eANjtwGcCkwFv/f/tnW3MXsOfx+dq0RWpBv2XVG6pRBZR5YUlpSqsqEhZIezNC1WNh5R4KGkiQkITfxKV6iZYTwnx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n4R7T7DroSIgAiIgAiIgAn1AQMJdwr0PumF4ESTcw1npShEQAREQAREQgcEiIOEu4d6qHi3h3qrmUmFFQAREQAREQAQSEpBwl3BP2J26n5WEe/cZ6wkiIAIiIAIiIAL9SUDCXcK9P3tmQakk3FvVXCqsCIiACIiACIhAQgIS7hLuCbtT97OScO8+Yz1BBERABERABESgPwlIuEu492fPlMW9Ve2iwoqACIiACIiACHSfgIS7hHv3e1nCJ8jinhCmshIBERABERABEWgVAQl3CffWdlhX8F4eQNAqeCqsCIiACIiACIhAqwlIuPdIuM+cOdMsWbKk1Z2nF4X//vvvzSuvvDLxaHHsRSvomSIgAiIgAiIgAr0g4OugXhouh+rk1GeeecbstNNO5rvvvutFm7f+mSMjI2bbtm0G0S6OrW9OVUAEREAEREAERCCCgNNBEu4R0Ope+sknn5jXXnutUrTvv//+dR8xEPeNjY2V1mP27Nnm999/r+Q4EDByKjHs/WNQ21X1EgEREAERiCNQpRficmvP1Yj30dHRnhV4aCzuPSOsB4uACIiACIiACIiACIhAAgIS7gkgKgsREAEREAEREAEREAER6DYBCfduE1b+IiACIiACIiACIiACIpCAgIR7AojKQgREQAREQAREQAREQAS6TUDCvduElb8IiIAIiIAIiIAIiIAIJCAg4Z4AorIQAREQAREQAREQAREQgW4TkHDvNmHlLwIiIAIiIAIiIAIiIAIJCEi4J4CoLERABERABERABERABESg2wQk3LtNWPmLgAiIgAiIgAiIgAiIQAICEu4JICoLERABERABERABERABEeg2AQn3bhNW/iIgAiIgAiIgAiIgAiKQgEAvhfvnxpiRBHVQFiIgAiIgAiIgAiIgAiIw6AQ+6XQ6f1+3kp26N3Lf+Pj4vxpjLmqSh+4VAREQAREQAREQAREQgSEhcFen01lZt65NhfsJxpjNdR+u+0RABERABERABERABERgiAj8Y6fT+c+69W0q3GcYY/6n7sN1nwiIgAiIgAiIgAiIgAgMEYG/63Q6v9atbyPhzkPHx8cvMMbcX7cAuk8EREAEREAEREAEREAEhoDAOZ1O5/Em9Uwh3MnjP4wxJzUpiO4VAREQAREQAREQAREQgQEl8O/GmH/qdDrjTerXWLj/aXXHZeZvxpjDmhRG94qACIiACIiACIiACIjAgBH4L2PMP3Q6nf9tWq8kwv1P8b6TMeYOY0ztnbJNK6P7RUAEREAEREAEREAERKCPCPyLMWZVp9P5vxRlSibcXWHGx8eJTXmTMeafUxRQeYiACIiACIiACIiACIhAywj8mzHmhk6n83HKcicX7p6AxwL/F2PMHGPMrikLrbxEQAREQAREQAREQAREoM8IEGnxK2PMf6eysGfr1zXh3mcgVRwREAEREAEREAEREAERaDUBCfdWN58KLwIiIAIiIAIiIAIiMCwEJNyHpaVVTxEQAREQAREQAREQgVYTkHBvdfOp8CIgAiIgAiIgAiIgAsNCQMJ9WFpa9RQBERABERABERABEWg1AQn3VjefCi8CIiACIiACIiACIjAsBCTch6WlVU8REAEREAEREAEREIFWE5Bwb3XzqfAiIAIiIAIiIAIiIALDQkDCfVhaWvUUAREQAREQAREQARFoNQEJ91Y3nwovAiIgAiIgAiIgAiIwLAT+H8Mkfc5q9OHLAAAAAElFTkSuQmCC";;
            //静态图片
            HanyinPlugin.Expanded({x,y,img:url,type:0,light:0},result=>{
                console.log(result);
            })
    },
    "qrCode":function(list,data,printIndex){
        // console.log(x,y,QRData);
        let x = (filterData.size_conversion(Number(list.left)) + pageLeft) * MULTIPLE;
        let y = (filterData.size_conversion(Number(list.top)) + pageTop) * MULTIPLE;
        let QRData = data[list.dataId];
        let width = filterData.size_conversion(Number(list.width));
        let m = "2";
        // filterData.size_conversion(Number(list.width))
        let u = filterData.size_conversion(Number(list.width)) - 6;
        console.log(x,y,m,u,QRData);
        //二维码
        HanyinPlugin.PrintQR({command:0,x,y,m,u,data:QRData},result=>{
            console.log(result);
        })
    }
}
//执行模板打印指令
const Print_Template = {
    // 汉印模板
    hanyin(data,printIndex) {
        // let {pagConfig,printItem} = printTemplate;
        // pageLeft = Number(pagConfig.pageLeft);
        // pageTop = Number(pagConfig.pageTop);
        // pageHeight = Number(pagConfig.pageHeight);
        // pageWidth = Number(pagConfig.pageWidth);
        // console.log(pageLeft,pageTop,pageHeight,pageWidth);
        // 设置页面
        HanyinPlugin.PrintAreaSize({
            offset: "0",
            Horizontal: "200",
            Vertical: "200",
            Height: (pageHeight + pageTop) * MULTIPLE +"",
            Qty: "1"
        }, result => {
            console.log(result);
        })
        //打印宽度
        HanyinPlugin.PageWidth({
            pw: (pageWidth + pageLeft) * MULTIPLE
        }, result => {
            console.log(result);
        })
        //遍历模板控件
        printItem.forEach(item=>{
            instructions[item.type](item,data,printIndex);
        });
        //启动打印
        HanyinPlugin.Form(result => {
            console.log(result);
        })
        HanyinPlugin.Print(result => {
            console.log(result);
            if (result.state > 0) {
                uni.showToast({
                    icon: "none",
                    title: "打印正常",
                    duration: 2000
                })
            } else {
                uni.showToast({
                    icon: "none",
                    title: "打印异常",
                    duration: 2000
                })
            }
        })
    }
}
//打印机连接指令
export default class printConnect {
    constructor(options) {
        /**
         *1.根据蓝牙名称判断打印机类型
         *2.连接指定打印机
         */
        console.log(options);
        this.name = options.name; //蓝牙打印机名称
        this.mac = options.mac; //蓝牙打印机地址
        this.isConnect = false; //是否连接打印机开关
        this.printIndex = null; //打印机标识
        this.print_sign(this.name);
    }
    //判断打印机牌子,打印出面单
    print_sign(name) {
        uni.showLoading({
            title: "连接中...",
            mask: true
        })
        //判断打印机名称是以什么开头
            console.log("汉印打印机");
            this.connect_hanyin(this.mac);
    }
    //汉印打印机连接
    connect_hanyin(mac) {
        this.disconnect();
        HanyinPlugin.PortOpenBT({
            mac
        }, result => {
            console.log('链接结果:' + JSON.stringify(result));
            switch (result.state) {
                case 0:
                    title = "连接成功";
                    this.isConnect = true;
                    // store.dispatch(SET_CONNECTBLEDATA, {name:this.name,mac:this.mac});
                    break;
                case -1:
                    title = "连接异常";
                    this.connect_hanyin();
                    break;
                case -2:
                    title = "地址格式错误";
                    break;
                case -3:
                    title = "握手指令错误";
                    break;
                default:
                    title = "";
            }
            uni.hideLoading();
            uni.showToast({
                icon: "none",
                title,
                duration: 2000
            })
        })
    }
    //启动打印命令
    startPrint(data) {
        console.log(data);
        console.log(this.printIndex);
        // obj 订单数据
        //汉印
        Print_Template.hanyin(data,this.printIndex);
    }
    //断开打印机连接
    disconnect() {
        HanyinPlugin.PortClose(result => {
            console.log(result);
        });
    }
}
main.js
@@ -3,6 +3,15 @@
// #ifndef VUE3
import Vue from 'vue'
Vue.config.productionTip = false
import '@/common/bluetooth.js';
//全局数据状态管理 vuex
import store from '@/store/index.js';
Vue.prototype.$store = store;
//全局公用静态数据
import Mock from '@/common/mock/index.js';
Vue.prototype.$Mock = Mock;
App.mpType = 'app'
try {
manifest.json
@@ -17,7 +17,9 @@
            "delay" : 0
        },
        /* 模块配置 */
        "modules" : {},
        "modules" : {
            "Bluetooth" : {}
        },
        /* 应用发布信息 */
        "distribute" : {
            /* android打包配置 */
nativeplugins/Hanyin-Plugin/android/AndroidManifest.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hanyin_plugin"
    android:versionCode="1"
    android:versionName="1.0.4" >
    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="31" />
</manifest>
nativeplugins/Hanyin-Plugin/android/META-INF/com/android/build/gradle/aar-metadata.properties
New file
@@ -0,0 +1,2 @@
aarFormatVersion=1.0
aarMetadataVersion=1.0
nativeplugins/Hanyin-Plugin/android/R.txt
New file
@@ -0,0 +1,2471 @@
int anim abc_fade_in 0x0
int anim abc_fade_out 0x0
int anim abc_grow_fade_in_from_bottom 0x0
int anim abc_popup_enter 0x0
int anim abc_popup_exit 0x0
int anim abc_shrink_fade_out_from_bottom 0x0
int anim abc_slide_in_bottom 0x0
int anim abc_slide_in_top 0x0
int anim abc_slide_out_bottom 0x0
int anim abc_slide_out_top 0x0
int anim abc_tooltip_enter 0x0
int anim abc_tooltip_exit 0x0
int anim dcloud_page_close_enter 0x0
int anim dcloud_page_close_exit 0x0
int anim dcloud_page_open_enter 0x0
int anim dcloud_page_open_exit 0x0
int anim dcloud_pop_in 0x0
int anim dcloud_pop_in_out 0x0
int anim dcloud_pop_out 0x0
int anim dcloud_slide_in_from_right 0x0
int anim dcloud_slide_in_from_top 0x0
int anim dcloud_slide_out_to_right 0x0
int anim dcloud_slide_out_to_top 0x0
int anim dcloud_slide_right_in 0x0
int anim dcloud_slide_right_out 0x0
int anim dcloud_slide_static 0x0
int anim image_dialog_enter 0x0
int anim image_dialog_exit 0x0
int anim image_fade_in 0x0
int anim image_fade_out 0x0
int attr actionBarDivider 0x0
int attr actionBarItemBackground 0x0
int attr actionBarPopupTheme 0x0
int attr actionBarSize 0x0
int attr actionBarSplitStyle 0x0
int attr actionBarStyle 0x0
int attr actionBarTabBarStyle 0x0
int attr actionBarTabStyle 0x0
int attr actionBarTabTextStyle 0x0
int attr actionBarTheme 0x0
int attr actionBarWidgetTheme 0x0
int attr actionButtonStyle 0x0
int attr actionDropDownStyle 0x0
int attr actionLayout 0x0
int attr actionMenuTextAppearance 0x0
int attr actionMenuTextColor 0x0
int attr actionModeBackground 0x0
int attr actionModeCloseButtonStyle 0x0
int attr actionModeCloseDrawable 0x0
int attr actionModeCopyDrawable 0x0
int attr actionModeCutDrawable 0x0
int attr actionModeFindDrawable 0x0
int attr actionModePasteDrawable 0x0
int attr actionModePopupWindowStyle 0x0
int attr actionModeSelectAllDrawable 0x0
int attr actionModeShareDrawable 0x0
int attr actionModeSplitBackground 0x0
int attr actionModeStyle 0x0
int attr actionModeWebSearchDrawable 0x0
int attr actionOverflowButtonStyle 0x0
int attr actionOverflowMenuStyle 0x0
int attr actionProviderClass 0x0
int attr actionSheetBackground 0x0
int attr actionSheetPadding 0x0
int attr actionSheetStyle 0x0
int attr actionSheetTextSize 0x0
int attr actionViewClass 0x0
int attr activityChooserViewStyle 0x0
int attr actualImageResource 0x0
int attr actualImageScaleType 0x0
int attr actualImageUri 0x0
int attr alertDialogButtonGroupStyle 0x0
int attr alertDialogCenterButtons 0x0
int attr alertDialogStyle 0x0
int attr alertDialogTheme 0x0
int attr allowStacking 0x0
int attr alpha 0x0
int attr alphabeticModifiers 0x0
int attr arrowHeadLength 0x0
int attr arrowShaftLength 0x0
int attr authPlay 0x0
int attr autoCompleteTextViewStyle 0x0
int attr autoSizeMaxTextSize 0x0
int attr autoSizeMinTextSize 0x0
int attr autoSizePresetSizes 0x0
int attr autoSizeStepGranularity 0x0
int attr autoSizeTextType 0x0
int attr background 0x0
int attr backgroundImage 0x0
int attr backgroundSplit 0x0
int attr backgroundStacked 0x0
int attr backgroundTint 0x0
int attr backgroundTintMode 0x0
int attr barLength 0x0
int attr borderlessButtonStyle 0x0
int attr buttonBarButtonStyle 0x0
int attr buttonBarNegativeButtonStyle 0x0
int attr buttonBarNeutralButtonStyle 0x0
int attr buttonBarPositiveButtonStyle 0x0
int attr buttonBarStyle 0x0
int attr buttonGravity 0x0
int attr buttonIconDimen 0x0
int attr buttonPanelSideLayout 0x0
int attr buttonStyle 0x0
int attr buttonStyleSmall 0x0
int attr buttonTint 0x0
int attr buttonTintMode 0x0
int attr cancelButtonBackground 0x0
int attr cancelButtonMarginTop 0x0
int attr cancelButtonTextColor 0x0
int attr checkboxStyle 0x0
int attr checkedTextViewStyle 0x0
int attr closeIcon 0x0
int attr closeItemLayout 0x0
int attr collapseContentDescription 0x0
int attr collapseIcon 0x0
int attr color 0x0
int attr colorAccent 0x0
int attr colorBackgroundFloating 0x0
int attr colorButtonNormal 0x0
int attr colorControlActivated 0x0
int attr colorControlHighlight 0x0
int attr colorControlNormal 0x0
int attr colorError 0x0
int attr colorPrimary 0x0
int attr colorPrimaryDark 0x0
int attr colorSwitchThumbNormal 0x0
int attr commitIcon 0x0
int attr contentDescription 0x0
int attr contentInsetEnd 0x0
int attr contentInsetEndWithActions 0x0
int attr contentInsetLeft 0x0
int attr contentInsetRight 0x0
int attr contentInsetStart 0x0
int attr contentInsetStartWithNavigation 0x0
int attr controlBackground 0x0
int attr coordinatorLayoutStyle 0x0
int attr customNavigationLayout 0x0
int attr defaultQueryHint 0x0
int attr destructiveButtonTextColor 0x0
int attr dialogCornerRadius 0x0
int attr dialogPreferredPadding 0x0
int attr dialogTheme 0x0
int attr displayOptions 0x0
int attr divider 0x0
int attr dividerHorizontal 0x0
int attr dividerPadding 0x0
int attr dividerVertical 0x0
int attr drawableSize 0x0
int attr drawerArrowStyle 0x0
int attr dropDownListViewStyle 0x0
int attr dropdownListPreferredItemHeight 0x0
int attr editTextBackground 0x0
int attr editTextColor 0x0
int attr editTextStyle 0x0
int attr elevation 0x0
int attr expandActivityOverflowButtonDrawable 0x0
int attr fadeDuration 0x0
int attr failureImage 0x0
int attr failureImageScaleType 0x0
int attr fastScrollEnabled 0x0
int attr fastScrollHorizontalThumbDrawable 0x0
int attr fastScrollHorizontalTrackDrawable 0x0
int attr fastScrollVerticalThumbDrawable 0x0
int attr fastScrollVerticalTrackDrawable 0x0
int attr firstBaselineToTopHeight 0x0
int attr font 0x0
int attr fontFamily 0x0
int attr fontProviderAuthority 0x0
int attr fontProviderCerts 0x0
int attr fontProviderFetchStrategy 0x0
int attr fontProviderFetchTimeout 0x0
int attr fontProviderPackage 0x0
int attr fontProviderQuery 0x0
int attr fontStyle 0x0
int attr fontVariationSettings 0x0
int attr fontWeight 0x0
int attr freezesAnimation 0x0
int attr gapBetweenBars 0x0
int attr gifSource 0x0
int attr gifSrc 0x0
int attr goIcon 0x0
int attr height 0x0
int attr hideOnContentScroll 0x0
int attr homeAsUpIndicator 0x0
int attr homeLayout 0x0
int attr icon 0x0
int attr iconTint 0x0
int attr iconTintMode 0x0
int attr iconifiedByDefault 0x0
int attr imageButtonStyle 0x0
int attr image_color 0x0
int attr image_gallery_select_shade 0x0
int attr image_gallery_span_count 0x0
int attr image_stroke_color 0x0
int attr indeterminateProgressStyle 0x0
int attr initialActivityCount 0x0
int attr isLightTheme 0x0
int attr isOpaque 0x0
int attr itemPadding 0x0
int attr keylines 0x0
int attr lastBaselineToBottomHeight 0x0
int attr layout 0x0
int attr layoutManager 0x0
int attr layout_anchor 0x0
int attr layout_anchorGravity 0x0
int attr layout_behavior 0x0
int attr layout_dodgeInsetEdges 0x0
int attr layout_insetEdge 0x0
int attr layout_keyline 0x0
int attr lineHeight 0x0
int attr listChoiceBackgroundIndicator 0x0
int attr listDividerAlertDialog 0x0
int attr listItemLayout 0x0
int attr listLayout 0x0
int attr listMenuViewStyle 0x0
int attr listPopupWindowStyle 0x0
int attr listPreferredItemHeight 0x0
int attr listPreferredItemHeightLarge 0x0
int attr listPreferredItemHeightSmall 0x0
int attr listPreferredItemPaddingLeft 0x0
int attr listPreferredItemPaddingRight 0x0
int attr logo 0x0
int attr logoDescription 0x0
int attr loopCount 0x0
int attr maxButtonHeight 0x0
int attr measureWithLargestChild 0x0
int attr multiChoiceItemLayout 0x0
int attr navigationContentDescription 0x0
int attr navigationIcon 0x0
int attr navigationMode 0x0
int attr numericModifiers 0x0
int attr otherButtonBottomBackground 0x0
int attr otherButtonMiddleBackground 0x0
int attr otherButtonSingleBackground 0x0
int attr otherButtonSpacing 0x0
int attr otherButtonTextColor 0x0
int attr otherButtonTitleBackground 0x0
int attr otherButtonTopBackground 0x0
int attr overlapAnchor 0x0
int attr overlayImage 0x0
int attr paddingBottomNoButtons 0x0
int attr paddingEnd 0x0
int attr paddingStart 0x0
int attr paddingTopNoTitle 0x0
int attr panelBackground 0x0
int attr panelMenuListTheme 0x0
int attr panelMenuListWidth 0x0
int attr placeholderImage 0x0
int attr placeholderImageScaleType 0x0
int attr playCount 0x0
int attr popupMenuStyle 0x0
int attr popupTheme 0x0
int attr popupWindowStyle 0x0
int attr preserveIconSpacing 0x0
int attr pressedStateOverlayImage 0x0
int attr progressBarAutoRotateInterval 0x0
int attr progressBarImage 0x0
int attr progressBarImageScaleType 0x0
int attr progressBarPadding 0x0
int attr progressBarStyle 0x0
int attr queryBackground 0x0
int attr queryHint 0x0
int attr radioButtonStyle 0x0
int attr ratingBarStyle 0x0
int attr ratingBarStyleIndicator 0x0
int attr ratingBarStyleSmall 0x0
int attr retryImage 0x0
int attr retryImageScaleType 0x0
int attr reverseLayout 0x0
int attr roundAsCircle 0x0
int attr roundBottomEnd 0x0
int attr roundBottomLeft 0x0
int attr roundBottomRight 0x0
int attr roundBottomStart 0x0
int attr roundTopEnd 0x0
int attr roundTopLeft 0x0
int attr roundTopRight 0x0
int attr roundTopStart 0x0
int attr roundWithOverlayColor 0x0
int attr roundedCornerRadius 0x0
int attr roundingBorderColor 0x0
int attr roundingBorderPadding 0x0
int attr roundingBorderWidth 0x0
int attr sb_background 0x0
int attr sb_border_width 0x0
int attr sb_button_color 0x0
int attr sb_checked 0x0
int attr sb_checked_color 0x0
int attr sb_checkline_color 0x0
int attr sb_checkline_width 0x0
int attr sb_effect_duration 0x0
int attr sb_enable_effect 0x0
int attr sb_shadow_color 0x0
int attr sb_shadow_effect 0x0
int attr sb_shadow_offset 0x0
int attr sb_shadow_radius 0x0
int attr sb_show_indicator 0x0
int attr sb_uncheck_color 0x0
int attr sb_uncheckcircle_color 0x0
int attr sb_uncheckcircle_radius 0x0
int attr sb_uncheckcircle_width 0x0
int attr searchHintIcon 0x0
int attr searchIcon 0x0
int attr searchViewStyle 0x0
int attr seekBarStyle 0x0
int attr selectableItemBackground 0x0
int attr selectableItemBackgroundBorderless 0x0
int attr showAsAction 0x0
int attr showDividers 0x0
int attr showText 0x0
int attr showTitle 0x0
int attr singleChoiceItemLayout 0x0
int attr spanCount 0x0
int attr spinBars 0x0
int attr spinnerDropDownItemStyle 0x0
int attr spinnerStyle 0x0
int attr splitTrack 0x0
int attr srcCompat 0x0
int attr stackFromEnd 0x0
int attr state_above_anchor 0x0
int attr statusBarBackground 0x0
int attr subMenuArrow 0x0
int attr submitBackground 0x0
int attr subtitle 0x0
int attr subtitleTextAppearance 0x0
int attr subtitleTextColor 0x0
int attr subtitleTextStyle 0x0
int attr suggestionRowLayout 0x0
int attr switchMinWidth 0x0
int attr switchPadding 0x0
int attr switchStyle 0x0
int attr switchTextAppearance 0x0
int attr textAllCaps 0x0
int attr textAppearanceLargePopupMenu 0x0
int attr textAppearanceListItem 0x0
int attr textAppearanceListItemSecondary 0x0
int attr textAppearanceListItemSmall 0x0
int attr textAppearancePopupMenuHeader 0x0
int attr textAppearanceSearchResultSubtitle 0x0
int attr textAppearanceSearchResultTitle 0x0
int attr textAppearanceSmallPopupMenu 0x0
int attr textColorAlertDialogListItem 0x0
int attr textColorSearchUrl 0x0
int attr theme 0x0
int attr thickness 0x0
int attr thumbTextPadding 0x0
int attr thumbTint 0x0
int attr thumbTintMode 0x0
int attr tickMark 0x0
int attr tickMarkTint 0x0
int attr tickMarkTintMode 0x0
int attr tint 0x0
int attr tintMode 0x0
int attr title 0x0
int attr titleButtonTextColor 0x0
int attr titleMargin 0x0
int attr titleMarginBottom 0x0
int attr titleMarginEnd 0x0
int attr titleMarginStart 0x0
int attr titleMarginTop 0x0
int attr titleMargins 0x0
int attr titleTextAppearance 0x0
int attr titleTextColor 0x0
int attr titleTextStyle 0x0
int attr toolbarNavigationButtonStyle 0x0
int attr toolbarStyle 0x0
int attr tooltipForegroundColor 0x0
int attr tooltipFrameBackground 0x0
int attr tooltipText 0x0
int attr track 0x0
int attr trackTint 0x0
int attr trackTintMode 0x0
int attr ttcIndex 0x0
int attr viewAspectRatio 0x0
int attr viewInflaterClass 0x0
int attr voiceIcon 0x0
int attr windowActionBar 0x0
int attr windowActionBarOverlay 0x0
int attr windowActionModeOverlay 0x0
int attr windowFixedHeightMajor 0x0
int attr windowFixedHeightMinor 0x0
int attr windowFixedWidthMajor 0x0
int attr windowFixedWidthMinor 0x0
int attr windowMinWidthMajor 0x0
int attr windowMinWidthMinor 0x0
int attr windowNoTitle 0x0
int bool abc_action_bar_embed_tabs 0x0
int bool abc_allow_stacked_button_bar 0x0
int bool abc_config_actionMenuItemAllCaps 0x0
int bool weex_is_right_to_left 0x0
int color abc_background_cache_hint_selector_material_dark 0x0
int color abc_background_cache_hint_selector_material_light 0x0
int color abc_btn_colored_borderless_text_material 0x0
int color abc_btn_colored_text_material 0x0
int color abc_color_highlight_material 0x0
int color abc_hint_foreground_material_dark 0x0
int color abc_hint_foreground_material_light 0x0
int color abc_input_method_navigation_guard 0x0
int color abc_primary_text_disable_only_material_dark 0x0
int color abc_primary_text_disable_only_material_light 0x0
int color abc_primary_text_material_dark 0x0
int color abc_primary_text_material_light 0x0
int color abc_search_url_text 0x0
int color abc_search_url_text_normal 0x0
int color abc_search_url_text_pressed 0x0
int color abc_search_url_text_selected 0x0
int color abc_secondary_text_material_dark 0x0
int color abc_secondary_text_material_light 0x0
int color abc_tint_btn_checkable 0x0
int color abc_tint_default 0x0
int color abc_tint_edittext 0x0
int color abc_tint_seek_thumb 0x0
int color abc_tint_spinner 0x0
int color abc_tint_switch_track 0x0
int color accent_material_dark 0x0
int color accent_material_light 0x0
int color background_floating_material_dark 0x0
int color background_floating_material_light 0x0
int color background_material_dark 0x0
int color background_material_light 0x0
int color black 0x0
int color bright_foreground_disabled_material_dark 0x0
int color bright_foreground_disabled_material_light 0x0
int color bright_foreground_inverse_material_dark 0x0
int color bright_foreground_inverse_material_light 0x0
int color bright_foreground_material_dark 0x0
int color bright_foreground_material_light 0x0
int color button_material_dark 0x0
int color button_material_light 0x0
int color dadada 0x0
int color dcloud_gallery_default_text_color 0x0
int color dcloud_slt_about_text_color 0x0
int color dim_foreground_disabled_material_dark 0x0
int color dim_foreground_disabled_material_light 0x0
int color dim_foreground_material_dark 0x0
int color dim_foreground_material_light 0x0
int color e4e4e4 0x0
int color error_color_material_dark 0x0
int color error_color_material_light 0x0
int color ffffff 0x0
int color foreground_material_dark 0x0
int color foreground_material_light 0x0
int color highlighted_text_material_dark 0x0
int color highlighted_text_material_light 0x0
int color image_color_accent 0x0
int color image_color_backgroud 0x0
int color image_color_black 0x0
int color image_color_blue 0x0
int color image_color_cyan 0x0
int color image_color_green 0x0
int color image_color_primary 0x0
int color image_color_purple 0x0
int color image_color_red 0x0
int color image_color_text 0x0
int color image_color_white 0x0
int color image_color_yellow 0x0
int color image_pick_title_btn_normal 0x0
int color image_pick_title_btn_pressed 0x0
int color ime_background 0x0
int color material_blue_grey_800 0x0
int color material_blue_grey_900 0x0
int color material_blue_grey_950 0x0
int color material_deep_teal_200 0x0
int color material_deep_teal_500 0x0
int color material_grey_100 0x0
int color material_grey_300 0x0
int color material_grey_50 0x0
int color material_grey_600 0x0
int color material_grey_800 0x0
int color material_grey_850 0x0
int color material_grey_900 0x0
int color notification_action_color_filter 0x0
int color notification_icon_bg_color 0x0
int color notification_material_background_media_default_color 0x0
int color primary_dark_material_dark 0x0
int color primary_dark_material_light 0x0
int color primary_material_dark 0x0
int color primary_material_light 0x0
int color primary_text_default_material_dark 0x0
int color primary_text_default_material_light 0x0
int color primary_text_disabled_material_dark 0x0
int color primary_text_disabled_material_light 0x0
int color purple_200 0x0
int color purple_500 0x0
int color purple_700 0x0
int color ripple_material_dark 0x0
int color ripple_material_light 0x0
int color secondary_text_default_material_dark 0x0
int color secondary_text_default_material_light 0x0
int color secondary_text_disabled_material_dark 0x0
int color secondary_text_disabled_material_light 0x0
int color switch_thumb_disabled_material_dark 0x0
int color switch_thumb_disabled_material_light 0x0
int color switch_thumb_material_dark 0x0
int color switch_thumb_material_light 0x0
int color switch_thumb_normal_material_dark 0x0
int color switch_thumb_normal_material_light 0x0
int color teal_200 0x0
int color teal_700 0x0
int color tooltip_background_dark 0x0
int color tooltip_background_light 0x0
int color white 0x0
int dimen abc_action_bar_content_inset_material 0x0
int dimen abc_action_bar_content_inset_with_nav 0x0
int dimen abc_action_bar_default_height_material 0x0
int dimen abc_action_bar_default_padding_end_material 0x0
int dimen abc_action_bar_default_padding_start_material 0x0
int dimen abc_action_bar_elevation_material 0x0
int dimen abc_action_bar_icon_vertical_padding_material 0x0
int dimen abc_action_bar_overflow_padding_end_material 0x0
int dimen abc_action_bar_overflow_padding_start_material 0x0
int dimen abc_action_bar_stacked_max_height 0x0
int dimen abc_action_bar_stacked_tab_max_width 0x0
int dimen abc_action_bar_subtitle_bottom_margin_material 0x0
int dimen abc_action_bar_subtitle_top_margin_material 0x0
int dimen abc_action_button_min_height_material 0x0
int dimen abc_action_button_min_width_material 0x0
int dimen abc_action_button_min_width_overflow_material 0x0
int dimen abc_alert_dialog_button_bar_height 0x0
int dimen abc_alert_dialog_button_dimen 0x0
int dimen abc_button_inset_horizontal_material 0x0
int dimen abc_button_inset_vertical_material 0x0
int dimen abc_button_padding_horizontal_material 0x0
int dimen abc_button_padding_vertical_material 0x0
int dimen abc_cascading_menus_min_smallest_width 0x0
int dimen abc_config_prefDialogWidth 0x0
int dimen abc_control_corner_material 0x0
int dimen abc_control_inset_material 0x0
int dimen abc_control_padding_material 0x0
int dimen abc_dialog_corner_radius_material 0x0
int dimen abc_dialog_fixed_height_major 0x0
int dimen abc_dialog_fixed_height_minor 0x0
int dimen abc_dialog_fixed_width_major 0x0
int dimen abc_dialog_fixed_width_minor 0x0
int dimen abc_dialog_list_padding_bottom_no_buttons 0x0
int dimen abc_dialog_list_padding_top_no_title 0x0
int dimen abc_dialog_min_width_major 0x0
int dimen abc_dialog_min_width_minor 0x0
int dimen abc_dialog_padding_material 0x0
int dimen abc_dialog_padding_top_material 0x0
int dimen abc_dialog_title_divider_material 0x0
int dimen abc_disabled_alpha_material_dark 0x0
int dimen abc_disabled_alpha_material_light 0x0
int dimen abc_dropdownitem_icon_width 0x0
int dimen abc_dropdownitem_text_padding_left 0x0
int dimen abc_dropdownitem_text_padding_right 0x0
int dimen abc_edit_text_inset_bottom_material 0x0
int dimen abc_edit_text_inset_horizontal_material 0x0
int dimen abc_edit_text_inset_top_material 0x0
int dimen abc_floating_window_z 0x0
int dimen abc_list_item_padding_horizontal_material 0x0
int dimen abc_panel_menu_list_width 0x0
int dimen abc_progress_bar_height_material 0x0
int dimen abc_search_view_preferred_height 0x0
int dimen abc_search_view_preferred_width 0x0
int dimen abc_seekbar_track_background_height_material 0x0
int dimen abc_seekbar_track_progress_height_material 0x0
int dimen abc_select_dialog_padding_start_material 0x0
int dimen abc_switch_padding 0x0
int dimen abc_text_size_body_1_material 0x0
int dimen abc_text_size_body_2_material 0x0
int dimen abc_text_size_button_material 0x0
int dimen abc_text_size_caption_material 0x0
int dimen abc_text_size_display_1_material 0x0
int dimen abc_text_size_display_2_material 0x0
int dimen abc_text_size_display_3_material 0x0
int dimen abc_text_size_display_4_material 0x0
int dimen abc_text_size_headline_material 0x0
int dimen abc_text_size_large_material 0x0
int dimen abc_text_size_medium_material 0x0
int dimen abc_text_size_menu_header_material 0x0
int dimen abc_text_size_menu_material 0x0
int dimen abc_text_size_small_material 0x0
int dimen abc_text_size_subhead_material 0x0
int dimen abc_text_size_subtitle_material_toolbar 0x0
int dimen abc_text_size_title_material 0x0
int dimen abc_text_size_title_material_toolbar 0x0
int dimen compat_button_inset_horizontal_material 0x0
int dimen compat_button_inset_vertical_material 0x0
int dimen compat_button_padding_horizontal_material 0x0
int dimen compat_button_padding_vertical_material 0x0
int dimen compat_control_corner_material 0x0
int dimen compat_notification_large_icon_max_height 0x0
int dimen compat_notification_large_icon_max_width 0x0
int dimen dcloud_wel_base_content_space 0x0
int dimen dcloud_wel_base_content_space_2 0x0
int dimen dcloud_wel_base_content_text_min_size 0x0
int dimen disabled_alpha_material_dark 0x0
int dimen disabled_alpha_material_light 0x0
int dimen fastscroll_default_thickness 0x0
int dimen fastscroll_margin 0x0
int dimen fastscroll_minimum_range 0x0
int dimen highlight_alpha_material_colored 0x0
int dimen highlight_alpha_material_dark 0x0
int dimen highlight_alpha_material_light 0x0
int dimen hint_alpha_material_dark 0x0
int dimen hint_alpha_material_light 0x0
int dimen hint_pressed_alpha_material_dark 0x0
int dimen hint_pressed_alpha_material_light 0x0
int dimen image_color 0x0
int dimen image_color_margin 0x0
int dimen image_mode_space 0x0
int dimen item_touch_helper_max_drag_scroll_per_frame 0x0
int dimen item_touch_helper_swipe_escape_max_velocity 0x0
int dimen item_touch_helper_swipe_escape_velocity 0x0
int dimen notification_action_icon_size 0x0
int dimen notification_action_text_size 0x0
int dimen notification_big_circle_margin 0x0
int dimen notification_content_margin_start 0x0
int dimen notification_large_icon_height 0x0
int dimen notification_large_icon_width 0x0
int dimen notification_main_column_padding_top 0x0
int dimen notification_media_narrow_margin 0x0
int dimen notification_right_icon_size 0x0
int dimen notification_right_side_padding_top 0x0
int dimen notification_small_icon_background_padding 0x0
int dimen notification_small_icon_size_as_large 0x0
int dimen notification_subtext_size 0x0
int dimen notification_top_pad 0x0
int dimen notification_top_pad_large_text 0x0
int dimen subtitle_corner_radius 0x0
int dimen subtitle_outline_width 0x0
int dimen subtitle_shadow_offset 0x0
int dimen subtitle_shadow_radius 0x0
int dimen tooltip_corner_radius 0x0
int dimen tooltip_horizontal_padding 0x0
int dimen tooltip_margin 0x0
int dimen tooltip_precise_anchor_extra_offset 0x0
int dimen tooltip_precise_anchor_threshold 0x0
int dimen tooltip_vertical_padding 0x0
int dimen tooltip_y_offset_non_touch 0x0
int dimen tooltip_y_offset_touch 0x0
int drawable abc_ab_share_pack_mtrl_alpha 0x0
int drawable abc_action_bar_item_background_material 0x0
int drawable abc_btn_borderless_material 0x0
int drawable abc_btn_check_material 0x0
int drawable abc_btn_check_to_on_mtrl_000 0x0
int drawable abc_btn_check_to_on_mtrl_015 0x0
int drawable abc_btn_colored_material 0x0
int drawable abc_btn_default_mtrl_shape 0x0
int drawable abc_btn_radio_material 0x0
int drawable abc_btn_radio_to_on_mtrl_000 0x0
int drawable abc_btn_radio_to_on_mtrl_015 0x0
int drawable abc_btn_switch_to_on_mtrl_00001 0x0
int drawable abc_btn_switch_to_on_mtrl_00012 0x0
int drawable abc_cab_background_internal_bg 0x0
int drawable abc_cab_background_top_material 0x0
int drawable abc_cab_background_top_mtrl_alpha 0x0
int drawable abc_control_background_material 0x0
int drawable abc_dialog_material_background 0x0
int drawable abc_edit_text_material 0x0
int drawable abc_ic_ab_back_material 0x0
int drawable abc_ic_arrow_drop_right_black_24dp 0x0
int drawable abc_ic_clear_material 0x0
int drawable abc_ic_commit_search_api_mtrl_alpha 0x0
int drawable abc_ic_go_search_api_material 0x0
int drawable abc_ic_menu_copy_mtrl_am_alpha 0x0
int drawable abc_ic_menu_cut_mtrl_alpha 0x0
int drawable abc_ic_menu_overflow_material 0x0
int drawable abc_ic_menu_paste_mtrl_am_alpha 0x0
int drawable abc_ic_menu_selectall_mtrl_alpha 0x0
int drawable abc_ic_menu_share_mtrl_alpha 0x0
int drawable abc_ic_search_api_material 0x0
int drawable abc_ic_star_black_16dp 0x0
int drawable abc_ic_star_black_36dp 0x0
int drawable abc_ic_star_black_48dp 0x0
int drawable abc_ic_star_half_black_16dp 0x0
int drawable abc_ic_star_half_black_36dp 0x0
int drawable abc_ic_star_half_black_48dp 0x0
int drawable abc_ic_voice_search_api_material 0x0
int drawable abc_item_background_holo_dark 0x0
int drawable abc_item_background_holo_light 0x0
int drawable abc_list_divider_material 0x0
int drawable abc_list_divider_mtrl_alpha 0x0
int drawable abc_list_focused_holo 0x0
int drawable abc_list_longpressed_holo 0x0
int drawable abc_list_pressed_holo_dark 0x0
int drawable abc_list_pressed_holo_light 0x0
int drawable abc_list_selector_background_transition_holo_dark 0x0
int drawable abc_list_selector_background_transition_holo_light 0x0
int drawable abc_list_selector_disabled_holo_dark 0x0
int drawable abc_list_selector_disabled_holo_light 0x0
int drawable abc_list_selector_holo_dark 0x0
int drawable abc_list_selector_holo_light 0x0
int drawable abc_menu_hardkey_panel_mtrl_mult 0x0
int drawable abc_popup_background_mtrl_mult 0x0
int drawable abc_ratingbar_indicator_material 0x0
int drawable abc_ratingbar_material 0x0
int drawable abc_ratingbar_small_material 0x0
int drawable abc_scrubber_control_off_mtrl_alpha 0x0
int drawable abc_scrubber_control_to_pressed_mtrl_000 0x0
int drawable abc_scrubber_control_to_pressed_mtrl_005 0x0
int drawable abc_scrubber_primary_mtrl_alpha 0x0
int drawable abc_scrubber_track_mtrl_alpha 0x0
int drawable abc_seekbar_thumb_material 0x0
int drawable abc_seekbar_tick_mark_material 0x0
int drawable abc_seekbar_track_material 0x0
int drawable abc_spinner_mtrl_am_alpha 0x0
int drawable abc_spinner_textfield_background_material 0x0
int drawable abc_switch_thumb_material 0x0
int drawable abc_switch_track_mtrl_alpha 0x0
int drawable abc_tab_indicator_material 0x0
int drawable abc_tab_indicator_mtrl_alpha 0x0
int drawable abc_text_cursor_material 0x0
int drawable abc_text_select_handle_left_mtrl_dark 0x0
int drawable abc_text_select_handle_left_mtrl_light 0x0
int drawable abc_text_select_handle_middle_mtrl_dark 0x0
int drawable abc_text_select_handle_middle_mtrl_light 0x0
int drawable abc_text_select_handle_right_mtrl_dark 0x0
int drawable abc_text_select_handle_right_mtrl_light 0x0
int drawable abc_textfield_activated_mtrl_alpha 0x0
int drawable abc_textfield_default_mtrl_alpha 0x0
int drawable abc_textfield_search_activated_mtrl_alpha 0x0
int drawable abc_textfield_search_default_mtrl_alpha 0x0
int drawable abc_textfield_search_material 0x0
int drawable abc_vector_test 0x0
int drawable ad_dcloud_main_ad_tag 0x0
int drawable ad_dcloud_main_skip_bg 0x0
int drawable ad_dcloud_main_skip_shape 0x0
int drawable dcloud_about_buttons_bg 0x0
int drawable dcloud_about_buttons_button_bg 0x0
int drawable dcloud_actionsheet_bottom_normal 0x0
int drawable dcloud_actionsheet_bottom_pressed 0x0
int drawable dcloud_actionsheet_middle_normal 0x0
int drawable dcloud_actionsheet_middle_pressed 0x0
int drawable dcloud_actionsheet_single_normal 0x0
int drawable dcloud_actionsheet_single_pressed 0x0
int drawable dcloud_actionsheet_top_normal 0x0
int drawable dcloud_actionsheet_top_pressed 0x0
int drawable dcloud_ad_splash_ad_tag 0x0
int drawable dcloud_ad_splash_click_btn_bg 0x0
int drawable dcloud_ad_splash_skip_bg 0x0
int drawable dcloud_ad_splash_skip_shape 0x0
int drawable dcloud_ad_webview_activity_title_bg 0x0
int drawable dcloud_as_bg_ios6 0x0
int drawable dcloud_as_cancel_bt_bg 0x0
int drawable dcloud_as_other_bt_bg 0x0
int drawable dcloud_assistan_loc 0x0
int drawable dcloud_circle_black_progress 0x0
int drawable dcloud_circle_white_progress 0x0
int drawable dcloud_custom_rich_dialog_button_bg_selecter 0x0
int drawable dcloud_custom_rich_dialog_button_text_selecter 0x0
int drawable dcloud_debug_shape 0x0
int drawable dcloud_dialog_loading 0x0
int drawable dcloud_dialog_shape 0x0
int drawable dcloud_dialog_shape_bg 0x0
int drawable dcloud_gallery_action_btn 0x0
int drawable dcloud_gallery_btn_selected 0x0
int drawable dcloud_gallery_btn_selected_drawable 0x0
int drawable dcloud_gallery_btn_unselected 0x0
int drawable dcloud_gallery_default_check 0x0
int drawable dcloud_gallery_default_image 0x0
int drawable dcloud_gallery_ic_back 0x0
int drawable dcloud_gallery_text_indicator 0x0
int drawable dcloud_gallery_video 0x0
int drawable dcloud_left_arrow 0x0
int drawable dcloud_longding_bg 0x0
int drawable dcloud_point_dd524d 0x0
int drawable dcloud_point_f32720 0x0
int drawable dcloud_recent 0x0
int drawable dcloud_record_border 0x0
int drawable dcloud_record_view_line 0x0
int drawable dcloud_right_arrow 0x0
int drawable dcloud_shadow_left 0x0
int drawable dcloud_shortcut_guide_huawei 0x0
int drawable dcloud_shortcut_guide_meizu 0x0
int drawable dcloud_shortcut_guide_xiaomi 0x0
int drawable dcloud_slt_as_ios7_cancel_bt 0x0
int drawable dcloud_slt_as_ios7_other_bt_bottom 0x0
int drawable dcloud_slt_as_ios7_other_bt_middle 0x0
int drawable dcloud_slt_as_ios7_other_bt_single 0x0
int drawable dcloud_slt_as_ios7_other_bt_title 0x0
int drawable dcloud_slt_as_ios7_other_bt_top 0x0
int drawable dcloud_snow_black 0x0
int drawable dcloud_snow_black_progress 0x0
int drawable dcloud_snow_white 0x0
int drawable dcloud_snow_white_progress 0x0
int drawable dcloud_streamapp_about_feedback 0x0
int drawable dcloud_streamapp_about_first_start_short_cut_checkbox 0x0
int drawable dcloud_streamapp_about_first_start_short_cut_cheked 0x0
int drawable dcloud_streamapp_about_first_start_short_cut_normal 0x0
int drawable dcloud_streamapp_about_right_arrow 0x0
int drawable dcloud_streamapp_about_share 0x0
int drawable dcloud_streamapp_about_update 0x0
int drawable dcloud_streamapp_icon 0x0
int drawable dcloud_streamapp_icon_appdefault 0x0
int drawable dcloud_tabbar_badge 0x0
int drawable dcloud_tabbar_dot 0x0
int drawable dcloud_webview_activity_title_bg 0x0
int drawable image_bg_bottom 0x0
int drawable image_bg_edit_check 0x0
int drawable image_bg_top 0x0
int drawable image_btn_finish 0x0
int drawable image_btn_undo 0x0
int drawable image_edit_cursor 0x0
int drawable image_edit_trans_background 0x0
int drawable notification_action_background 0x0
int drawable notification_bg 0x0
int drawable notification_bg_low 0x0
int drawable notification_bg_low_normal 0x0
int drawable notification_bg_low_pressed 0x0
int drawable notification_bg_normal 0x0
int drawable notification_bg_normal_pressed 0x0
int drawable notification_icon_background 0x0
int drawable notification_template_icon_bg 0x0
int drawable notification_template_icon_low_bg 0x0
int drawable notification_tile_bg 0x0
int drawable notify_panel_notification_icon_bg 0x0
int drawable offline_pin 0x0
int drawable offline_pin_round 0x0
int drawable shortcut_permission_guide_bg 0x0
int drawable shortcut_permission_guide_close 0x0
int drawable shortcut_permission_guide_play 0x0
int drawable side_bar_bg 0x0
int drawable side_bar_close 0x0
int drawable side_bar_closebar 0x0
int drawable side_bar_custom_menu_item_bg 0x0
int drawable side_bar_custom_menu_item_line 0x0
int drawable side_bar_custom_menu_item_selected 0x0
int drawable side_bar_favorite 0x0
int drawable side_bar_home 0x0
int drawable side_bar_openbar 0x0
int drawable side_bar_refresh 0x0
int drawable side_bar_share 0x0
int drawable sidebar_shortcut 0x0
int drawable toast_bg 0x0
int drawable tooltip_frame_dark 0x0
int drawable tooltip_frame_light 0x0
int drawable weex_error 0x0
int id action0 0x0
int id action_bar 0x0
int id action_bar_activity_content 0x0
int id action_bar_container 0x0
int id action_bar_root 0x0
int id action_bar_spinner 0x0
int id action_bar_subtitle 0x0
int id action_bar_title 0x0
int id action_container 0x0
int id action_context_bar 0x0
int id action_divider 0x0
int id action_image 0x0
int id action_menu_divider 0x0
int id action_menu_presenter 0x0
int id action_mode_bar 0x0
int id action_mode_bar_stub 0x0
int id action_mode_close_button 0x0
int id action_text 0x0
int id actions 0x0
int id activity_chooser_view_content 0x0
int id ad_dcloud_icon 0x0
int id ad_dcloud_icon_single 0x0
int id ad_dcloud_main_adtext 0x0
int id ad_dcloud_main_click 0x0
int id ad_dcloud_main_img 0x0
int id ad_dcloud_main_skip 0x0
int id ad_dcloud_name 0x0
int id ad_dcloud_root 0x0
int id ad_dcloud_splash_bottom_bar 0x0
int id ad_dcloud_splash_container 0x0
int id add 0x0
int id alertTitle 0x0
int id async 0x0
int id back 0x0
int id bar_title 0x0
int id bgImg 0x0
int id blocking 0x0
int id bottom 0x0
int id bottom_content_layout 0x0
int id btn_back 0x0
int id btn_clip 0x0
int id btn_custom_privacy_cancel 0x0
int id btn_custom_privacy_sure 0x0
int id btn_text 0x0
int id btn_undo 0x0
int id buttonPanel 0x0
int id cancel 0x0
int id cancel_action 0x0
int id category_btn 0x0
int id cb_box 0x0
int id cb_original 0x0
int id center 0x0
int id centerCrop 0x0
int id centerInside 0x0
int id cg_colors 0x0
int id check_image 0x0
int id check_layout 0x0
int id check_origin_image 0x0
int id check_origin_image_layout 0x0
int id checkbox 0x0
int id chronometer 0x0
int id close 0x0
int id content 0x0
int id contentPanel 0x0
int id contentWrapper 0x0
int id cover 0x0
int id cr_red 0x0
int id cr_white 0x0
int id custom 0x0
int id customLayout 0x0
int id customPanel 0x0
int id dcloud_dialog_btn1 0x0
int id dcloud_dialog_btn2 0x0
int id dcloud_dialog_icon 0x0
int id dcloud_dialog_msg 0x0
int id dcloud_dialog_rootview 0x0
int id dcloud_dialog_title 0x0
int id dcloud_guide_close 0x0
int id dcloud_guide_gifview 0x0
int id dcloud_guide_play 0x0
int id dcloud_guide_play_layout 0x0
int id dcloud_guide_tip 0x0
int id dcloud_image_edit_foot 0x0
int id dcloud_image_edit_head 0x0
int id dcloud_iv_loading 0x0
int id dcloud_pb_loading 0x0
int id dcloud_pd_root 0x0
int id dcloud_record_address_view_1 0x0
int id dcloud_record_address_view_2 0x0
int id dcloud_record_address_view_3 0x0
int id dcloud_record_arrow_left 0x0
int id dcloud_record_arrow_left_layout 0x0
int id dcloud_record_arrow_right 0x0
int id dcloud_record_arrow_right_layout 0x0
int id dcloud_record_arrows 0x0
int id dcloud_record_line_1 0x0
int id dcloud_record_line_2 0x0
int id dcloud_record_scroll_view 0x0
int id dcloud_record_view_1 0x0
int id dcloud_record_view_2 0x0
int id dcloud_tv_loading 0x0
int id dcloud_view_seaparator 0x0
int id debugTV 0x0
int id decor_content_parent 0x0
int id default_activity_button 0x0
int id delete 0x0
int id dialog_title 0x0
int id done 0x0
int id edit_query 0x0
int id end 0x0
int id end_padder 0x0
int id et_text 0x0
int id expand_activities_button 0x0
int id expanded_menu 0x0
int id favoriteIcon 0x0
int id fitBottomStart 0x0
int id fitCenter 0x0
int id fitEnd 0x0
int id fitStart 0x0
int id fitXY 0x0
int id focusCrop 0x0
int id footer 0x0
int id forever 0x0
int id gallery_preview_edit 0x0
int id gif_info 0x0
int id glide_custom_view_target_tag 0x0
int id group_divider 0x0
int id guide_title 0x0
int id home 0x0
int id ib_clip_cancel 0x0
int id ib_clip_done 0x0
int id ib_clip_rotate 0x0
int id icon 0x0
int id icon_group 0x0
int id image 0x0
int id image_btn_enable 0x0
int id image_canvas 0x0
int id image_menu_done 0x0
int id image_rv_menu 0x0
int id indicator 0x0
int id info 0x0
int id italic 0x0
int id itemBadge 0x0
int id itemDot 0x0
int id item_touch_helper_previous_elevation 0x0
int id layout_footer 0x0
int id layout_op_sub 0x0
int id left 0x0
int id leftLayout 0x0
int id line1 0x0
int id line3 0x0
int id listMode 0x0
int id list_item 0x0
int id ll_content_layout 0x0
int id ll_title_bar 0x0
int id loading 0x0
int id loading_background 0x0
int id logs 0x0
int id mask_view 0x0
int id media_actions 0x0
int id media_image 0x0
int id menu 0x0
int id message 0x0
int id midBTN 0x0
int id multiply 0x0
int id name 0x0
int id none 0x0
int id normal 0x0
int id notification_background 0x0
int id notification_main_column 0x0
int id notification_main_column_container 0x0
int id page 0x0
int id pager 0x0
int id parentPanel 0x0
int id path 0x0
int id photoview 0x0
int id play_view 0x0
int id preview 0x0
int id progressBar 0x0
int id progress_circular 0x0
int id progress_horizontal 0x0
int id query_page 0x0
int id radio 0x0
int id rb_doodle 0x0
int id rb_mosaic 0x0
int id rb_select 0x0
int id recycler_view 0x0
int id refresh 0x0
int id rg_modes 0x0
int id right 0x0
int id rightLayout 0x0
int id right_icon 0x0
int id right_side 0x0
int id rl_notification 0x0
int id root 0x0
int id rv_images 0x0
int id screen 0x0
int id scrollIndicatorDown 0x0
int id scrollIndicatorUp 0x0
int id scrollView 0x0
int id search_badge 0x0
int id search_bar 0x0
int id search_button 0x0
int id search_close_btn 0x0
int id search_edit_frame 0x0
int id search_go_btn 0x0
int id search_mag_icon 0x0
int id search_plate 0x0
int id search_src_text 0x0
int id search_voice_btn 0x0
int id select_dialog_listview 0x0
int id select_origin_image_text 0x0
int id select_text 0x0
int id set_priority 0x0
int id shortcut 0x0
int id sideBarButtonsLayout 0x0
int id sideBarCloseLayout 0x0
int id sideBarFavoriteLayout 0x0
int id sideBarHomeLayout 0x0
int id sideBarOpenOrCloseIV 0x0
int id sideBarOpenOrCloseLayout 0x0
int id sideBarOpenOrCloseTipIV 0x0
int id sideBarReFreshLayout 0x0
int id sideBarShareLayout 0x0
int id size 0x0
int id spacer 0x0
int id split_action_bar 0x0
int id src_atop 0x0
int id src_in 0x0
int id src_over 0x0
int id start 0x0
int id start_manage 0x0
int id status_bar_latest_event_content 0x0
int id status_bar_view 0x0
int id submenuarrow 0x0
int id submit_area 0x0
int id sure 0x0
int id tab0 0x0
int id tab1 0x0
int id tab2 0x0
int id tab3 0x0
int id tabIV 0x0
int id tabMode 0x0
int id tabTV 0x0
int id tag_transition_group 0x0
int id tag_unhandled_key_event_manager 0x0
int id tag_unhandled_key_listeners 0x0
int id text 0x0
int id text2 0x0
int id textSpacerNoButtons 0x0
int id textSpacerNoTitle 0x0
int id textView_gif 0x0
int id textView_size 0x0
int id text_bar 0x0
int id textview_1 0x0
int id time 0x0
int id title 0x0
int id titleDividerNoCustom 0x0
int id title_template 0x0
int id top 0x0
int id topPanel 0x0
int id tv_album_folder 0x0
int id tv_cancel 0x0
int id tv_clip_reset 0x0
int id tv_custom_privacy_title 0x0
int id tv_done 0x0
int id tv_name 0x0
int id tv_preview 0x0
int id tv_privacy_content 0x0
int id uniform 0x0
int id up 0x0
int id video_info 0x0
int id viewpager 0x0
int id vs_op 0x0
int id vs_op_sub 0x0
int id vs_tips_stub 0x0
int id webview 0x0
int id wrap_content 0x0
int integer abc_config_activityDefaultDur 0x0
int integer abc_config_activityShortDur 0x0
int integer cancel_button_image_alpha 0x0
int integer config_tooltipAnimTime 0x0
int integer status_bar_notification_info_maxnum 0x0
int layout abc_action_bar_title_item 0x0
int layout abc_action_bar_up_container 0x0
int layout abc_action_menu_item_layout 0x0
int layout abc_action_menu_layout 0x0
int layout abc_action_mode_bar 0x0
int layout abc_action_mode_close_item_material 0x0
int layout abc_activity_chooser_view 0x0
int layout abc_activity_chooser_view_list_item 0x0
int layout abc_alert_dialog_button_bar_material 0x0
int layout abc_alert_dialog_material 0x0
int layout abc_alert_dialog_title_material 0x0
int layout abc_cascading_menu_item_layout 0x0
int layout abc_dialog_title_material 0x0
int layout abc_expanded_menu_layout 0x0
int layout abc_list_menu_item_checkbox 0x0
int layout abc_list_menu_item_icon 0x0
int layout abc_list_menu_item_layout 0x0
int layout abc_list_menu_item_radio 0x0
int layout abc_popup_menu_header_item_layout 0x0
int layout abc_popup_menu_item_layout 0x0
int layout abc_screen_content_include 0x0
int layout abc_screen_simple 0x0
int layout abc_screen_simple_overlay_action_mode 0x0
int layout abc_screen_toolbar 0x0
int layout abc_search_dropdown_item_icons_2line 0x0
int layout abc_search_view 0x0
int layout abc_select_dialog_material 0x0
int layout abc_tooltip 0x0
int layout ad_dcloud_main 0x0
int layout ad_dcloud_splash 0x0
int layout dcloud_activity_main_market 0x0
int layout dcloud_ad_activity_webview 0x0
int layout dcloud_ad_splash_container 0x0
int layout dcloud_custom_alert_dialog_layout 0x0
int layout dcloud_custom_notification 0x0
int layout dcloud_custom_notification_dark 0x0
int layout dcloud_custom_notification_mi 0x0
int layout dcloud_custom_notification_transparent 0x0
int layout dcloud_custom_notification_white 0x0
int layout dcloud_custom_privacy_dialog_layout 0x0
int layout dcloud_custom_privacy_second_dialog_layout 0x0
int layout dcloud_dialog 0x0
int layout dcloud_dialog_loading 0x0
int layout dcloud_gallery_folders_view_item 0x0
int layout dcloud_gallery_media_view_item 0x0
int layout dcloud_gallery_picker_actionbar 0x0
int layout dcloud_gallery_picker_main 0x0
int layout dcloud_gallery_preview_actionbar 0x0
int layout dcloud_gallery_preview_bottombar 0x0
int layout dcloud_gallery_preview_fragment_item 0x0
int layout dcloud_gallery_preview_main 0x0
int layout dcloud_loadingview 0x0
int layout dcloud_main_test_activity 0x0
int layout dcloud_market_fragment_base 0x0
int layout dcloud_record_address 0x0
int layout dcloud_record_default 0x0
int layout dcloud_shortcut_permission_guide_layout 0x0
int layout dcloud_snow_black_progress 0x0
int layout dcloud_snow_white_progress 0x0
int layout dcloud_streamapp_custom_dialog_layout 0x0
int layout dcloud_tabbar_item 0x0
int layout dcloud_tabbar_mid 0x0
int layout dcloud_weex_debug_progress 0x0
int layout image_color_layout 0x0
int layout image_edit_activity 0x0
int layout image_edit_clip_layout 0x0
int layout image_edit_opt_layout 0x0
int layout image_gallery_activity 0x0
int layout image_inc_gallery_request_permission 0x0
int layout image_layout_gallery_menu_item 0x0
int layout image_layout_gallery_pop 0x0
int layout image_layout_image 0x0
int layout image_text_dialog 0x0
int layout notification_action 0x0
int layout notification_action_tombstone 0x0
int layout notification_media_action 0x0
int layout notification_media_cancel_action 0x0
int layout notification_template_big_media 0x0
int layout notification_template_big_media_custom 0x0
int layout notification_template_big_media_narrow 0x0
int layout notification_template_big_media_narrow_custom 0x0
int layout notification_template_custom_big 0x0
int layout notification_template_icon_group 0x0
int layout notification_template_lines_media 0x0
int layout notification_template_media 0x0
int layout notification_template_media_custom 0x0
int layout notification_template_part_chronometer 0x0
int layout notification_template_part_time 0x0
int layout select_dialog_item_material 0x0
int layout select_dialog_multichoice_material 0x0
int layout select_dialog_singlechoice_material 0x0
int layout side_bar_layout 0x0
int layout support_simple_spinner_dropdown_item 0x0
int layout webview_layout 0x0
int layout weex_recycler_layout 0x0
int menu image_menu_gallery 0x0
int mipmap dcloud_gallery_edit_back 0x0
int mipmap dcloud_gallery_edit_cancel 0x0
int mipmap dcloud_gallery_edit_clip 0x0
int mipmap dcloud_gallery_edit_doodle 0x0
int mipmap dcloud_gallery_edit_mosaic 0x0
int mipmap dcloud_gallery_edit_ok 0x0
int mipmap dcloud_gallery_edit_revert 0x0
int mipmap dcloud_gallery_edit_rotate 0x0
int mipmap dcloud_gallery_edit_text 0x0
int mipmap image_ic_adjust 0x0
int mipmap image_ic_delete 0x0
int mipmap image_ic_undo 0x0
int mipmap image_ic_undo_disable 0x0
int string abc_action_bar_home_description 0x0
int string abc_action_bar_up_description 0x0
int string abc_action_menu_overflow_description 0x0
int string abc_action_mode_done 0x0
int string abc_activity_chooser_view_see_all 0x0
int string abc_activitychooserview_choose_application 0x0
int string abc_capital_off 0x0
int string abc_capital_on 0x0
int string abc_font_family_body_1_material 0x0
int string abc_font_family_body_2_material 0x0
int string abc_font_family_button_material 0x0
int string abc_font_family_caption_material 0x0
int string abc_font_family_display_1_material 0x0
int string abc_font_family_display_2_material 0x0
int string abc_font_family_display_3_material 0x0
int string abc_font_family_display_4_material 0x0
int string abc_font_family_headline_material 0x0
int string abc_font_family_menu_material 0x0
int string abc_font_family_subhead_material 0x0
int string abc_font_family_title_material 0x0
int string abc_menu_alt_shortcut_label 0x0
int string abc_menu_ctrl_shortcut_label 0x0
int string abc_menu_delete_shortcut_label 0x0
int string abc_menu_enter_shortcut_label 0x0
int string abc_menu_function_shortcut_label 0x0
int string abc_menu_meta_shortcut_label 0x0
int string abc_menu_shift_shortcut_label 0x0
int string abc_menu_space_shortcut_label 0x0
int string abc_menu_sym_shortcut_label 0x0
int string abc_prepend_shortcut_label 0x0
int string abc_search_hint 0x0
int string abc_searchview_description_clear 0x0
int string abc_searchview_description_query 0x0
int string abc_searchview_description_search 0x0
int string abc_searchview_description_submit 0x0
int string abc_searchview_description_voice 0x0
int string abc_shareactionprovider_share_with 0x0
int string abc_shareactionprovider_share_with_application 0x0
int string abc_toolbar_collapse_description 0x0
int string app_name 0x0
int string dcloud_Init_fail_tips 0x0
int string dcloud_audio_abnormal_rebuild 0x0
int string dcloud_audio_no_mp3_module_added 0x0
int string dcloud_audio_not_aac_recording 0x0
int string dcloud_audio_not_mp3_recording 0x0
int string dcloud_audio_play_error 0x0
int string dcloud_audio_timeout 0x0
int string dcloud_choose_an_action 0x0
int string dcloud_common_allow 0x0
int string dcloud_common_app_check_failed 0x0
int string dcloud_common_app_not_installed 0x0
int string dcloud_common_app_not_oaid 0x0
int string dcloud_common_app_open_now 0x0
int string dcloud_common_app_res_download_failed 0x0
int string dcloud_common_app_target_tips 0x0
int string dcloud_common_app_test_tips 0x0
int string dcloud_common_app_tips1 0x0
int string dcloud_common_app_tips2 0x0
int string dcloud_common_app_trust_tips 0x0
int string dcloud_common_cancel 0x0
int string dcloud_common_certificate_continue 0x0
int string dcloud_common_close 0x0
int string dcloud_common_copy_clipboard 0x0
int string dcloud_common_copy_link 0x0
int string dcloud_common_download 0x0
int string dcloud_common_download_complete 0x0
int string dcloud_common_download_do_file 0x0
int string dcloud_common_download_failed 0x0
int string dcloud_common_download_tips1 0x0
int string dcloud_common_download_tips2 0x0
int string dcloud_common_download_tips3 0x0
int string dcloud_common_exit 0x0
int string dcloud_common_fail 0x0
int string dcloud_common_file_not_exist 0x0
int string dcloud_common_ignore 0x0
int string dcloud_common_in_the_buffer 0x0
int string dcloud_common_inside_error 0x0
int string dcloud_common_into 0x0
int string dcloud_common_missing_parameter 0x0
int string dcloud_common_msg_unread_prompt 0x0
int string dcloud_common_no_allow 0x0
int string dcloud_common_no_network_tips 0x0
int string dcloud_common_not_sd_card 0x0
int string dcloud_common_not_supported 0x0
int string dcloud_common_ok 0x0
int string dcloud_common_open 0x0
int string dcloud_common_open_browser 0x0
int string dcloud_common_open_web 0x0
int string dcloud_common_parameter_error 0x0
int string dcloud_common_press_again_tips1 0x0
int string dcloud_common_press_again_tips2 0x0
int string dcloud_common_refresh 0x0
int string dcloud_common_retry 0x0
int string dcloud_common_run_app_failed 0x0
int string dcloud_common_safety_warning 0x0
int string dcloud_common_screenshot_blank 0x0
int string dcloud_common_screenshot_fail 0x0
int string dcloud_common_sd_not_space 0x0
int string dcloud_common_search 0x0
int string dcloud_common_set_network 0x0
int string dcloud_common_set_up 0x0
int string dcloud_common_setting_download_failed 0x0
int string dcloud_common_share 0x0
int string dcloud_common_share_page 0x0
int string dcloud_common_soon_open 0x0
int string dcloud_common_tips 0x0
int string dcloud_common_unknown_error 0x0
int string dcloud_common_user_cancel 0x0
int string dcloud_common_user_refuse_api 0x0
int string dcloud_common_view_details 0x0
int string dcloud_common_zip_image_output_failed 0x0
int string dcloud_current_address 0x0
int string dcloud_debug_break_off_reason 0x0
int string dcloud_debug_cannot_connect 0x0
int string dcloud_debug_connecting 0x0
int string dcloud_debug_possible_causes 0x0
int string dcloud_debug_reconnection_service 0x0
int string dcloud_dialog_loading 0x0
int string dcloud_drop_down_refresh1 0x0
int string dcloud_drop_down_refresh2 0x0
int string dcloud_drop_down_refresh3 0x0
int string dcloud_feature_barcode2_no_camera_permission 0x0
int string dcloud_feature_error_tips 0x0
int string dcloud_feature_error_tips2 0x0
int string dcloud_feature_weex_jsfk_not_found_tips 0x0
int string dcloud_feature_weex_msg_cannot_find_file_by_path 0x0
int string dcloud_feature_weex_msg_page_destroyed 0x0
int string dcloud_feature_weex_msg_param_empty 0x0
int string dcloud_feature_weex_msg_param_invalid 0x0
int string dcloud_gallery_Next 0x0
int string dcloud_gallery_all_dir_name 0x0
int string dcloud_gallery_all_image 0x0
int string dcloud_gallery_all_video 0x0
int string dcloud_gallery_cant_play_video 0x0
int string dcloud_gallery_count_string 0x0
int string dcloud_gallery_done 0x0
int string dcloud_gallery_edit 0x0
int string dcloud_gallery_edit_image_all_photo 0x0
int string dcloud_gallery_edit_image_cancel 0x0
int string dcloud_gallery_edit_image_clip 0x0
int string dcloud_gallery_edit_image_done 0x0
int string dcloud_gallery_edit_image_doodle 0x0
int string dcloud_gallery_edit_image_enable_storage_permission 0x0
int string dcloud_gallery_edit_image_enable_storage_tips 0x0
int string dcloud_gallery_edit_image_mosaic 0x0
int string dcloud_gallery_edit_image_mosaic_tip 0x0
int string dcloud_gallery_edit_image_original 0x0
int string dcloud_gallery_edit_image_preview 0x0
int string dcloud_gallery_edit_image_reset 0x0
int string dcloud_gallery_edit_image_rotate 0x0
int string dcloud_gallery_edit_image_text 0x0
int string dcloud_gallery_edit_image_undo 0x0
int string dcloud_gallery_library_name 0x0
int string dcloud_gallery_msg_amount_limit 0x0
int string dcloud_gallery_msg_size_limit 0x0
int string dcloud_gallery_preview 0x0
int string dcloud_gallery_read_external_storage 0x0
int string dcloud_gallery_select 0x0
int string dcloud_gallery_select_image_title 0x0
int string dcloud_gallery_select_null 0x0
int string dcloud_gallery_select_title 0x0
int string dcloud_gallery_select_video_title 0x0
int string dcloud_gallery_video 0x0
int string dcloud_gallery_video_dir_name 0x0
int string dcloud_geo_current_address 0x0
int string dcloud_geo_fail 0x0
int string dcloud_geo_loading 0x0
int string dcloud_geo_open_permissions 0x0
int string dcloud_geo_open_service 0x0
int string dcloud_geo_permission_failed 0x0
int string dcloud_geo_provider_invalid 0x0
int string dcloud_io_coding_error 0x0
int string dcloud_io_file_not_found 0x0
int string dcloud_io_file_not_read 0x0
int string dcloud_io_grammar_mistakes 0x0
int string dcloud_io_invalid_modification 0x0
int string dcloud_io_invalid_state 0x0
int string dcloud_io_no_modification_allowed 0x0
int string dcloud_io_path_exists 0x0
int string dcloud_io_path_not_exist 0x0
int string dcloud_io_perform_error 0x0
int string dcloud_io_type_mismatch 0x0
int string dcloud_io_unknown_error 0x0
int string dcloud_io_without_authorization 0x0
int string dcloud_io_write_non_base64 0x0
int string dcloud_native_obj_load_failed 0x0
int string dcloud_native_obj_path_cannot_empty 0x0
int string dcloud_native_obj_path_not_network 0x0
int string dcloud_nf_afternoon 0x0
int string dcloud_nf_desktop_icon_corner 0x0
int string dcloud_nf_evening 0x0
int string dcloud_nf_forenoon 0x0
int string dcloud_nf_midnight 0x0
int string dcloud_nf_morning 0x0
int string dcloud_nf_night 0x0
int string dcloud_nf_noon 0x0
int string dcloud_oauth_authentication_failed 0x0
int string dcloud_oauth_empower_failed 0x0
int string dcloud_oauth_logout_tips 0x0
int string dcloud_oauth_oauth_not_empower 0x0
int string dcloud_oauth_token_failed 0x0
int string dcloud_offline_fail_tips 0x0
int string dcloud_package_name_base_application 0x0
int string dcloud_permission_read_phone_state_message 0x0
int string dcloud_permission_write_external_storage_message 0x0
int string dcloud_permissions_album_whether_allow 0x0
int string dcloud_permissions_camera_whether_allow 0x0
int string dcloud_permissions_checkbox_close_tips 0x0
int string dcloud_permissions_geo_retry_tips 0x0
int string dcloud_permissions_informs_whether_allow 0x0
int string dcloud_permissions_njs_tips1 0x0
int string dcloud_permissions_njs_whether_allow 0x0
int string dcloud_permissions_phone_call_whether_allow 0x0
int string dcloud_permissions_reauthorization 0x0
int string dcloud_permissions_record_whether_allow 0x0
int string dcloud_permissions_reopened 0x0
int string dcloud_permissions_retry_tips 0x0
int string dcloud_permissions_short_cut_close_tips 0x0
int string dcloud_permissions_short_cut_tips 0x0
int string dcloud_permissions_short_cut_tips2 0x0
int string dcloud_permissions_sms_whether_allow 0x0
int string dcloud_permissions_whether_allow 0x0
int string dcloud_privacy_prompt_accept_button_text 0x0
int string dcloud_privacy_prompt_message 0x0
int string dcloud_privacy_prompt_title 0x0
int string dcloud_record_address_current 0x0
int string dcloud_record_address_home 0x0
int string dcloud_record_address_unit 0x0
int string dcloud_runtime_not_manifest 0x0
int string dcloud_runtime_not_update_tips 0x0
int string dcloud_share_content_not_empty 0x0
int string dcloud_share_local_path 0x0
int string dcloud_short_cut_abandon_install 0x0
int string dcloud_short_cut_chuizi1 0x0
int string dcloud_short_cut_create_desktop_icon 0x0
int string dcloud_short_cut_create_error 0x0
int string dcloud_short_cut_create_error_tips 0x0
int string dcloud_short_cut_create_error_tips2 0x0
int string dcloud_short_cut_create_error_tips3 0x0
int string dcloud_short_cut_create_error_tips4 0x0
int string dcloud_short_cut_created 0x0
int string dcloud_short_cut_created_removed_manually 0x0
int string dcloud_short_cut_created_tip 0x0
int string dcloud_short_cut_err1 0x0
int string dcloud_short_cut_exists 0x0
int string dcloud_short_cut_goto_pms 0x0
int string dcloud_short_cut_goto_run 0x0
int string dcloud_short_cut_if_create_tips 0x0
int string dcloud_short_cut_it_set 0x0
int string dcloud_short_cut_not_install 0x0
int string dcloud_short_cut_open_pms_tips 0x0
int string dcloud_short_cut_open_pms_title 0x0
int string dcloud_short_cut_open_set_pms 0x0
int string dcloud_short_cut_pms_unauthorized_tips1 0x0
int string dcloud_short_cut_pms_unauthorized_tips2 0x0
int string dcloud_short_cut_pms_unauthorized_tips3 0x0
int string dcloud_short_cut_pms_unauthorized_tips4 0x0
int string dcloud_short_cut_qiku1 0x0
int string dcloud_short_cut_set_pms 0x0
int string dcloud_short_cut_set_up 0x0
int string dcloud_short_cut_tips 0x0
int string dcloud_short_cut_vivo1 0x0
int string dcloud_short_cut_vivo2 0x0
int string dcloud_storage_ceiling_error 0x0
int string dcloud_storage_key_error 0x0
int string dcloud_storage_native_error 0x0
int string dcloud_storage_no_db_error 0x0
int string dcloud_storage_not_find_error 0x0
int string dcloud_storage_success 0x0
int string dcloud_storage_write_big_error 0x0
int string dcloud_sync_debug_message 0x0
int string dcloud_titlenview_back_button_description 0x0
int string dcloud_ui_webview_not_finished 0x0
int string dcloud_wgt_appid_legal 0x0
int string dcloud_wgt_format_error 0x0
int string dcloud_wgt_manifest_format_error 0x0
int string dcloud_wgt_not_manifest 0x0
int string dcloud_wgt_not_update_file 0x0
int string dcloud_wgt_update_appid_error 0x0
int string dcloud_wgt_update_format_error 0x0
int string dcloud_wgt_update_version_error 0x0
int string dcloud_wgt_version_error 0x0
int string dcloud_wgtu_appid_legal 0x0
int string dcloud_wgtu_manifest_format_error 0x0
int string dcloud_wgtu_not_manifest 0x0
int string dcloud_wgtu_version_error 0x0
int string in_package 0x0
int string oaid_not_support 0x0
int string search_menu_title 0x0
int string status_bar_notification_info_overflow 0x0
int string stream_my 0x0
int style ActionSheetStyleIOS6 0x0
int style ActionSheetStyleIOS7 0x0
int style AlertDialog_AppCompat 0x0
int style AlertDialog_AppCompat_Light 0x0
int style Animation_AppCompat_Dialog 0x0
int style Animation_AppCompat_DropDownUp 0x0
int style Animation_AppCompat_Tooltip 0x0
int style Base_AlertDialog_AppCompat 0x0
int style Base_AlertDialog_AppCompat_Light 0x0
int style Base_Animation_AppCompat_Dialog 0x0
int style Base_Animation_AppCompat_DropDownUp 0x0
int style Base_Animation_AppCompat_Tooltip 0x0
int style Base_DialogWindowTitleBackground_AppCompat 0x0
int style Base_DialogWindowTitle_AppCompat 0x0
int style Base_TextAppearance_AppCompat 0x0
int style Base_TextAppearance_AppCompat_Body1 0x0
int style Base_TextAppearance_AppCompat_Body2 0x0
int style Base_TextAppearance_AppCompat_Button 0x0
int style Base_TextAppearance_AppCompat_Caption 0x0
int style Base_TextAppearance_AppCompat_Display1 0x0
int style Base_TextAppearance_AppCompat_Display2 0x0
int style Base_TextAppearance_AppCompat_Display3 0x0
int style Base_TextAppearance_AppCompat_Display4 0x0
int style Base_TextAppearance_AppCompat_Headline 0x0
int style Base_TextAppearance_AppCompat_Inverse 0x0
int style Base_TextAppearance_AppCompat_Large 0x0
int style Base_TextAppearance_AppCompat_Large_Inverse 0x0
int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x0
int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x0
int style Base_TextAppearance_AppCompat_Medium 0x0
int style Base_TextAppearance_AppCompat_Medium_Inverse 0x0
int style Base_TextAppearance_AppCompat_Menu 0x0
int style Base_TextAppearance_AppCompat_SearchResult 0x0
int style Base_TextAppearance_AppCompat_SearchResult_Subtitle 0x0
int style Base_TextAppearance_AppCompat_SearchResult_Title 0x0
int style Base_TextAppearance_AppCompat_Small 0x0
int style Base_TextAppearance_AppCompat_Small_Inverse 0x0
int style Base_TextAppearance_AppCompat_Subhead 0x0
int style Base_TextAppearance_AppCompat_Subhead_Inverse 0x0
int style Base_TextAppearance_AppCompat_Title 0x0
int style Base_TextAppearance_AppCompat_Title_Inverse 0x0
int style Base_TextAppearance_AppCompat_Tooltip 0x0
int style Base_TextAppearance_AppCompat_Widget_ActionBar_Menu 0x0
int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x0
int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x0
int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title 0x0
int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x0
int style Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x0
int style Base_TextAppearance_AppCompat_Widget_ActionMode_Title 0x0
int style Base_TextAppearance_AppCompat_Widget_Button 0x0
int style Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x0
int style Base_TextAppearance_AppCompat_Widget_Button_Colored 0x0
int style Base_TextAppearance_AppCompat_Widget_Button_Inverse 0x0
int style Base_TextAppearance_AppCompat_Widget_DropDownItem 0x0
int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Header 0x0
int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Large 0x0
int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Small 0x0
int style Base_TextAppearance_AppCompat_Widget_Switch 0x0
int style Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x0
int style Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x0
int style Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x0
int style Base_TextAppearance_Widget_AppCompat_Toolbar_Title 0x0
int style Base_ThemeOverlay_AppCompat 0x0
int style Base_ThemeOverlay_AppCompat_ActionBar 0x0
int style Base_ThemeOverlay_AppCompat_Dark 0x0
int style Base_ThemeOverlay_AppCompat_Dark_ActionBar 0x0
int style Base_ThemeOverlay_AppCompat_Dialog 0x0
int style Base_ThemeOverlay_AppCompat_Dialog_Alert 0x0
int style Base_ThemeOverlay_AppCompat_Light 0x0
int style Base_Theme_AppCompat 0x0
int style Base_Theme_AppCompat_CompactMenu 0x0
int style Base_Theme_AppCompat_Dialog 0x0
int style Base_Theme_AppCompat_DialogWhenLarge 0x0
int style Base_Theme_AppCompat_Dialog_Alert 0x0
int style Base_Theme_AppCompat_Dialog_FixedSize 0x0
int style Base_Theme_AppCompat_Dialog_MinWidth 0x0
int style Base_Theme_AppCompat_Light 0x0
int style Base_Theme_AppCompat_Light_DarkActionBar 0x0
int style Base_Theme_AppCompat_Light_Dialog 0x0
int style Base_Theme_AppCompat_Light_DialogWhenLarge 0x0
int style Base_Theme_AppCompat_Light_Dialog_Alert 0x0
int style Base_Theme_AppCompat_Light_Dialog_FixedSize 0x0
int style Base_Theme_AppCompat_Light_Dialog_MinWidth 0x0
int style Base_V21_ThemeOverlay_AppCompat_Dialog 0x0
int style Base_V21_Theme_AppCompat 0x0
int style Base_V21_Theme_AppCompat_Dialog 0x0
int style Base_V21_Theme_AppCompat_Light 0x0
int style Base_V21_Theme_AppCompat_Light_Dialog 0x0
int style Base_V22_Theme_AppCompat 0x0
int style Base_V22_Theme_AppCompat_Light 0x0
int style Base_V23_Theme_AppCompat 0x0
int style Base_V23_Theme_AppCompat_Light 0x0
int style Base_V26_Theme_AppCompat 0x0
int style Base_V26_Theme_AppCompat_Light 0x0
int style Base_V26_Widget_AppCompat_Toolbar 0x0
int style Base_V28_Theme_AppCompat 0x0
int style Base_V28_Theme_AppCompat_Light 0x0
int style Base_V7_ThemeOverlay_AppCompat_Dialog 0x0
int style Base_V7_Theme_AppCompat 0x0
int style Base_V7_Theme_AppCompat_Dialog 0x0
int style Base_V7_Theme_AppCompat_Light 0x0
int style Base_V7_Theme_AppCompat_Light_Dialog 0x0
int style Base_V7_Widget_AppCompat_AutoCompleteTextView 0x0
int style Base_V7_Widget_AppCompat_EditText 0x0
int style Base_V7_Widget_AppCompat_Toolbar 0x0
int style Base_Widget_AppCompat_ActionBar 0x0
int style Base_Widget_AppCompat_ActionBar_Solid 0x0
int style Base_Widget_AppCompat_ActionBar_TabBar 0x0
int style Base_Widget_AppCompat_ActionBar_TabText 0x0
int style Base_Widget_AppCompat_ActionBar_TabView 0x0
int style Base_Widget_AppCompat_ActionButton 0x0
int style Base_Widget_AppCompat_ActionButton_CloseMode 0x0
int style Base_Widget_AppCompat_ActionButton_Overflow 0x0
int style Base_Widget_AppCompat_ActionMode 0x0
int style Base_Widget_AppCompat_ActivityChooserView 0x0
int style Base_Widget_AppCompat_AutoCompleteTextView 0x0
int style Base_Widget_AppCompat_Button 0x0
int style Base_Widget_AppCompat_ButtonBar 0x0
int style Base_Widget_AppCompat_ButtonBar_AlertDialog 0x0
int style Base_Widget_AppCompat_Button_Borderless 0x0
int style Base_Widget_AppCompat_Button_Borderless_Colored 0x0
int style Base_Widget_AppCompat_Button_ButtonBar_AlertDialog 0x0
int style Base_Widget_AppCompat_Button_Colored 0x0
int style Base_Widget_AppCompat_Button_Small 0x0
int style Base_Widget_AppCompat_CompoundButton_CheckBox 0x0
int style Base_Widget_AppCompat_CompoundButton_RadioButton 0x0
int style Base_Widget_AppCompat_CompoundButton_Switch 0x0
int style Base_Widget_AppCompat_DrawerArrowToggle 0x0
int style Base_Widget_AppCompat_DrawerArrowToggle_Common 0x0
int style Base_Widget_AppCompat_DropDownItem_Spinner 0x0
int style Base_Widget_AppCompat_EditText 0x0
int style Base_Widget_AppCompat_ImageButton 0x0
int style Base_Widget_AppCompat_Light_ActionBar 0x0
int style Base_Widget_AppCompat_Light_ActionBar_Solid 0x0
int style Base_Widget_AppCompat_Light_ActionBar_TabBar 0x0
int style Base_Widget_AppCompat_Light_ActionBar_TabText 0x0
int style Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x0
int style Base_Widget_AppCompat_Light_ActionBar_TabView 0x0
int style Base_Widget_AppCompat_Light_PopupMenu 0x0
int style Base_Widget_AppCompat_Light_PopupMenu_Overflow 0x0
int style Base_Widget_AppCompat_ListMenuView 0x0
int style Base_Widget_AppCompat_ListPopupWindow 0x0
int style Base_Widget_AppCompat_ListView 0x0
int style Base_Widget_AppCompat_ListView_DropDown 0x0
int style Base_Widget_AppCompat_ListView_Menu 0x0
int style Base_Widget_AppCompat_PopupMenu 0x0
int style Base_Widget_AppCompat_PopupMenu_Overflow 0x0
int style Base_Widget_AppCompat_PopupWindow 0x0
int style Base_Widget_AppCompat_ProgressBar 0x0
int style Base_Widget_AppCompat_ProgressBar_Horizontal 0x0
int style Base_Widget_AppCompat_RatingBar 0x0
int style Base_Widget_AppCompat_RatingBar_Indicator 0x0
int style Base_Widget_AppCompat_RatingBar_Small 0x0
int style Base_Widget_AppCompat_SearchView 0x0
int style Base_Widget_AppCompat_SearchView_ActionBar 0x0
int style Base_Widget_AppCompat_SeekBar 0x0
int style Base_Widget_AppCompat_SeekBar_Discrete 0x0
int style Base_Widget_AppCompat_Spinner 0x0
int style Base_Widget_AppCompat_Spinner_Underlined 0x0
int style Base_Widget_AppCompat_TextView_SpinnerItem 0x0
int style Base_Widget_AppCompat_Toolbar 0x0
int style Base_Widget_AppCompat_Toolbar_Button_Navigation 0x0
int style DCloudTheme 0x0
int style DeviceDefault 0x0
int style DeviceDefault_Light 0x0
int style ImageDialogAnimation 0x0
int style ImageEditTheme 0x0
int style ImageGalleryTheme 0x0
int style ImageTextDialog 0x0
int style NotificationText 0x0
int style NotificationText_Dark 0x0
int style NotificationTitle 0x0
int style NotificationTitle_Dark 0x0
int style OpenStreamAppTransferActivityTheme 0x0
int style Platform_AppCompat 0x0
int style Platform_AppCompat_Light 0x0
int style Platform_ThemeOverlay_AppCompat 0x0
int style Platform_ThemeOverlay_AppCompat_Dark 0x0
int style Platform_ThemeOverlay_AppCompat_Light 0x0
int style Platform_V21_AppCompat 0x0
int style Platform_V21_AppCompat_Light 0x0
int style Platform_V25_AppCompat 0x0
int style Platform_V25_AppCompat_Light 0x0
int style Platform_Widget_AppCompat_Spinner 0x0
int style RtlOverlay_DialogWindowTitle_AppCompat 0x0
int style RtlOverlay_Widget_AppCompat_ActionBar_TitleItem 0x0
int style RtlOverlay_Widget_AppCompat_DialogTitle_Icon 0x0
int style RtlOverlay_Widget_AppCompat_PopupMenuItem 0x0
int style RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup 0x0
int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut 0x0
int style RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow 0x0
int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Text 0x0
int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Title 0x0
int style RtlOverlay_Widget_AppCompat_SearchView_MagIcon 0x0
int style RtlOverlay_Widget_AppCompat_Search_DropDown 0x0
int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 0x0
int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 0x0
int style RtlOverlay_Widget_AppCompat_Search_DropDown_Query 0x0
int style RtlOverlay_Widget_AppCompat_Search_DropDown_Text 0x0
int style RtlUnderlay_Widget_AppCompat_ActionButton 0x0
int style RtlUnderlay_Widget_AppCompat_ActionButton_Overflow 0x0
int style TextAppearance_AppCompat 0x0
int style TextAppearance_AppCompat_Body1 0x0
int style TextAppearance_AppCompat_Body2 0x0
int style TextAppearance_AppCompat_Button 0x0
int style TextAppearance_AppCompat_Caption 0x0
int style TextAppearance_AppCompat_Display1 0x0
int style TextAppearance_AppCompat_Display2 0x0
int style TextAppearance_AppCompat_Display3 0x0
int style TextAppearance_AppCompat_Display4 0x0
int style TextAppearance_AppCompat_Headline 0x0
int style TextAppearance_AppCompat_Inverse 0x0
int style TextAppearance_AppCompat_Large 0x0
int style TextAppearance_AppCompat_Large_Inverse 0x0
int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x0
int style TextAppearance_AppCompat_Light_SearchResult_Title 0x0
int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x0
int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x0
int style TextAppearance_AppCompat_Medium 0x0
int style TextAppearance_AppCompat_Medium_Inverse 0x0
int style TextAppearance_AppCompat_Menu 0x0
int style TextAppearance_AppCompat_SearchResult_Subtitle 0x0
int style TextAppearance_AppCompat_SearchResult_Title 0x0
int style TextAppearance_AppCompat_Small 0x0
int style TextAppearance_AppCompat_Small_Inverse 0x0
int style TextAppearance_AppCompat_Subhead 0x0
int style TextAppearance_AppCompat_Subhead_Inverse 0x0
int style TextAppearance_AppCompat_Title 0x0
int style TextAppearance_AppCompat_Title_Inverse 0x0
int style TextAppearance_AppCompat_Tooltip 0x0
int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x0
int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x0
int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x0
int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x0
int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x0
int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x0
int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x0
int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x0
int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x0
int style TextAppearance_AppCompat_Widget_Button 0x0
int style TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x0
int style TextAppearance_AppCompat_Widget_Button_Colored 0x0
int style TextAppearance_AppCompat_Widget_Button_Inverse 0x0
int style TextAppearance_AppCompat_Widget_DropDownItem 0x0
int style TextAppearance_AppCompat_Widget_PopupMenu_Header 0x0
int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x0
int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x0
int style TextAppearance_AppCompat_Widget_Switch 0x0
int style TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x0
int style TextAppearance_Compat_Notification 0x0
int style TextAppearance_Compat_Notification_Info 0x0
int style TextAppearance_Compat_Notification_Info_Media 0x0
int style TextAppearance_Compat_Notification_Line2 0x0
int style TextAppearance_Compat_Notification_Line2_Media 0x0
int style TextAppearance_Compat_Notification_Media 0x0
int style TextAppearance_Compat_Notification_Time 0x0
int style TextAppearance_Compat_Notification_Time_Media 0x0
int style TextAppearance_Compat_Notification_Title 0x0
int style TextAppearance_Compat_Notification_Title_Media 0x0
int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x0
int style TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x0
int style TextAppearance_Widget_AppCompat_Toolbar_Title 0x0
int style ThemeNoTitleBar 0x0
int style ThemeOverlay_AppCompat 0x0
int style ThemeOverlay_AppCompat_ActionBar 0x0
int style ThemeOverlay_AppCompat_Dark 0x0
int style ThemeOverlay_AppCompat_Dark_ActionBar 0x0
int style ThemeOverlay_AppCompat_Dialog 0x0
int style ThemeOverlay_AppCompat_Dialog_Alert 0x0
int style ThemeOverlay_AppCompat_Light 0x0
int style Theme_AppCompat 0x0
int style Theme_AppCompat_CompactMenu 0x0
int style Theme_AppCompat_DayNight 0x0
int style Theme_AppCompat_DayNight_DarkActionBar 0x0
int style Theme_AppCompat_DayNight_Dialog 0x0
int style Theme_AppCompat_DayNight_DialogWhenLarge 0x0
int style Theme_AppCompat_DayNight_Dialog_Alert 0x0
int style Theme_AppCompat_DayNight_Dialog_MinWidth 0x0
int style Theme_AppCompat_DayNight_NoActionBar 0x0
int style Theme_AppCompat_Dialog 0x0
int style Theme_AppCompat_DialogWhenLarge 0x0
int style Theme_AppCompat_Dialog_Alert 0x0
int style Theme_AppCompat_Dialog_MinWidth 0x0
int style Theme_AppCompat_Light 0x0
int style Theme_AppCompat_Light_DarkActionBar 0x0
int style Theme_AppCompat_Light_Dialog 0x0
int style Theme_AppCompat_Light_DialogWhenLarge 0x0
int style Theme_AppCompat_Light_Dialog_Alert 0x0
int style Theme_AppCompat_Light_Dialog_MinWidth 0x0
int style Theme_AppCompat_Light_NoActionBar 0x0
int style Theme_AppCompat_NoActionBar 0x0
int style TranslucentTheme 0x0
int style Widget_AppCompat_ActionBar 0x0
int style Widget_AppCompat_ActionBar_Solid 0x0
int style Widget_AppCompat_ActionBar_TabBar 0x0
int style Widget_AppCompat_ActionBar_TabText 0x0
int style Widget_AppCompat_ActionBar_TabView 0x0
int style Widget_AppCompat_ActionButton 0x0
int style Widget_AppCompat_ActionButton_CloseMode 0x0
int style Widget_AppCompat_ActionButton_Overflow 0x0
int style Widget_AppCompat_ActionMode 0x0
int style Widget_AppCompat_ActivityChooserView 0x0
int style Widget_AppCompat_AutoCompleteTextView 0x0
int style Widget_AppCompat_Button 0x0
int style Widget_AppCompat_ButtonBar 0x0
int style Widget_AppCompat_ButtonBar_AlertDialog 0x0
int style Widget_AppCompat_Button_Borderless 0x0
int style Widget_AppCompat_Button_Borderless_Colored 0x0
int style Widget_AppCompat_Button_ButtonBar_AlertDialog 0x0
int style Widget_AppCompat_Button_Colored 0x0
int style Widget_AppCompat_Button_Small 0x0
int style Widget_AppCompat_CompoundButton_CheckBox 0x0
int style Widget_AppCompat_CompoundButton_RadioButton 0x0
int style Widget_AppCompat_CompoundButton_Switch 0x0
int style Widget_AppCompat_DrawerArrowToggle 0x0
int style Widget_AppCompat_DropDownItem_Spinner 0x0
int style Widget_AppCompat_EditText 0x0
int style Widget_AppCompat_ImageButton 0x0
int style Widget_AppCompat_Light_ActionBar 0x0
int style Widget_AppCompat_Light_ActionBar_Solid 0x0
int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x0
int style Widget_AppCompat_Light_ActionBar_TabBar 0x0
int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x0
int style Widget_AppCompat_Light_ActionBar_TabText 0x0
int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x0
int style Widget_AppCompat_Light_ActionBar_TabView 0x0
int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x0
int style Widget_AppCompat_Light_ActionButton 0x0
int style Widget_AppCompat_Light_ActionButton_CloseMode 0x0
int style Widget_AppCompat_Light_ActionButton_Overflow 0x0
int style Widget_AppCompat_Light_ActionMode_Inverse 0x0
int style Widget_AppCompat_Light_ActivityChooserView 0x0
int style Widget_AppCompat_Light_AutoCompleteTextView 0x0
int style Widget_AppCompat_Light_DropDownItem_Spinner 0x0
int style Widget_AppCompat_Light_ListPopupWindow 0x0
int style Widget_AppCompat_Light_ListView_DropDown 0x0
int style Widget_AppCompat_Light_PopupMenu 0x0
int style Widget_AppCompat_Light_PopupMenu_Overflow 0x0
int style Widget_AppCompat_Light_SearchView 0x0
int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x0
int style Widget_AppCompat_ListMenuView 0x0
int style Widget_AppCompat_ListPopupWindow 0x0
int style Widget_AppCompat_ListView 0x0
int style Widget_AppCompat_ListView_DropDown 0x0
int style Widget_AppCompat_ListView_Menu 0x0
int style Widget_AppCompat_PopupMenu 0x0
int style Widget_AppCompat_PopupMenu_Overflow 0x0
int style Widget_AppCompat_PopupWindow 0x0
int style Widget_AppCompat_ProgressBar 0x0
int style Widget_AppCompat_ProgressBar_Horizontal 0x0
int style Widget_AppCompat_RatingBar 0x0
int style Widget_AppCompat_RatingBar_Indicator 0x0
int style Widget_AppCompat_RatingBar_Small 0x0
int style Widget_AppCompat_SearchView 0x0
int style Widget_AppCompat_SearchView_ActionBar 0x0
int style Widget_AppCompat_SeekBar 0x0
int style Widget_AppCompat_SeekBar_Discrete 0x0
int style Widget_AppCompat_Spinner 0x0
int style Widget_AppCompat_Spinner_DropDown 0x0
int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x0
int style Widget_AppCompat_Spinner_Underlined 0x0
int style Widget_AppCompat_TextView_SpinnerItem 0x0
int style Widget_AppCompat_Toolbar 0x0
int style Widget_AppCompat_Toolbar_Button_Navigation 0x0
int style Widget_Compat_NotificationActionContainer 0x0
int style Widget_Compat_NotificationActionText 0x0
int style Widget_Support_CoordinatorLayout 0x0
int style dcloud_anim_dialog_window_in_out 0x0
int style dcloud_defalut_dialog 0x0
int style dialog_transparent 0x0
int style featureLossDialog 0x0
int style streamDelete19Dialog 0x0
int style textAppearance 0x0
int[] styleable ActionBar { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable ActionBar_background 0
int styleable ActionBar_backgroundSplit 1
int styleable ActionBar_backgroundStacked 2
int styleable ActionBar_contentInsetEnd 3
int styleable ActionBar_contentInsetEndWithActions 4
int styleable ActionBar_contentInsetLeft 5
int styleable ActionBar_contentInsetRight 6
int styleable ActionBar_contentInsetStart 7
int styleable ActionBar_contentInsetStartWithNavigation 8
int styleable ActionBar_customNavigationLayout 9
int styleable ActionBar_displayOptions 10
int styleable ActionBar_divider 11
int styleable ActionBar_elevation 12
int styleable ActionBar_height 13
int styleable ActionBar_hideOnContentScroll 14
int styleable ActionBar_homeAsUpIndicator 15
int styleable ActionBar_homeLayout 16
int styleable ActionBar_icon 17
int styleable ActionBar_indeterminateProgressStyle 18
int styleable ActionBar_itemPadding 19
int styleable ActionBar_logo 20
int styleable ActionBar_navigationMode 21
int styleable ActionBar_popupTheme 22
int styleable ActionBar_progressBarPadding 23
int styleable ActionBar_progressBarStyle 24
int styleable ActionBar_subtitle 25
int styleable ActionBar_subtitleTextStyle 26
int styleable ActionBar_title 27
int styleable ActionBar_titleTextStyle 28
int[] styleable ActionBarLayout { 0x10100b3 }
int styleable ActionBarLayout_android_layout_gravity 0
int[] styleable ActionMenuItemView { 0x101013f }
int styleable ActionMenuItemView_android_minWidth 0
int[] styleable ActionMenuView {  }
int[] styleable ActionMode { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable ActionMode_background 0
int styleable ActionMode_backgroundSplit 1
int styleable ActionMode_closeItemLayout 2
int styleable ActionMode_height 3
int styleable ActionMode_subtitleTextStyle 4
int styleable ActionMode_titleTextStyle 5
int[] styleable ActionSheet { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable ActionSheet_actionSheetBackground 0
int styleable ActionSheet_actionSheetPadding 1
int styleable ActionSheet_actionSheetTextSize 2
int styleable ActionSheet_cancelButtonBackground 3
int styleable ActionSheet_cancelButtonMarginTop 4
int styleable ActionSheet_cancelButtonTextColor 5
int styleable ActionSheet_destructiveButtonTextColor 6
int styleable ActionSheet_otherButtonBottomBackground 7
int styleable ActionSheet_otherButtonMiddleBackground 8
int styleable ActionSheet_otherButtonSingleBackground 9
int styleable ActionSheet_otherButtonSpacing 10
int styleable ActionSheet_otherButtonTextColor 11
int styleable ActionSheet_otherButtonTitleBackground 12
int styleable ActionSheet_otherButtonTopBackground 13
int styleable ActionSheet_titleButtonTextColor 14
int[] styleable ActionSheets { 0x0 }
int styleable ActionSheets_actionSheetStyle 0
int[] styleable ActivityChooserView { 0x0, 0x0 }
int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 0
int styleable ActivityChooserView_initialActivityCount 1
int[] styleable AlertDialog { 0x10100f2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable AlertDialog_android_layout 0
int styleable AlertDialog_buttonIconDimen 1
int styleable AlertDialog_buttonPanelSideLayout 2
int styleable AlertDialog_listItemLayout 3
int styleable AlertDialog_listLayout 4
int styleable AlertDialog_multiChoiceItemLayout 5
int styleable AlertDialog_showTitle 6
int styleable AlertDialog_singleChoiceItemLayout 7
int[] styleable AnimatedStateListDrawableCompat { 0x1010196, 0x101011c, 0x101030c, 0x101030d, 0x1010195, 0x1010194 }
int styleable AnimatedStateListDrawableCompat_android_constantSize 0
int styleable AnimatedStateListDrawableCompat_android_dither 1
int styleable AnimatedStateListDrawableCompat_android_enterFadeDuration 2
int styleable AnimatedStateListDrawableCompat_android_exitFadeDuration 3
int styleable AnimatedStateListDrawableCompat_android_variablePadding 4
int styleable AnimatedStateListDrawableCompat_android_visible 5
int[] styleable AnimatedStateListDrawableItem { 0x1010199, 0x10100d0 }
int styleable AnimatedStateListDrawableItem_android_drawable 0
int styleable AnimatedStateListDrawableItem_android_id 1
int[] styleable AnimatedStateListDrawableTransition { 0x1010199, 0x101044a, 0x101044b, 0x1010449 }
int styleable AnimatedStateListDrawableTransition_android_drawable 0
int styleable AnimatedStateListDrawableTransition_android_fromId 1
int styleable AnimatedStateListDrawableTransition_android_reversible 2
int styleable AnimatedStateListDrawableTransition_android_toId 3
int[] styleable AppCompatImageView { 0x1010119, 0x0, 0x0, 0x0 }
int styleable AppCompatImageView_android_src 0
int styleable AppCompatImageView_srcCompat 1
int styleable AppCompatImageView_tint 2
int styleable AppCompatImageView_tintMode 3
int[] styleable AppCompatSeekBar { 0x1010142, 0x0, 0x0, 0x0 }
int styleable AppCompatSeekBar_android_thumb 0
int styleable AppCompatSeekBar_tickMark 1
int styleable AppCompatSeekBar_tickMarkTint 2
int styleable AppCompatSeekBar_tickMarkTintMode 3
int[] styleable AppCompatTextHelper { 0x101016e, 0x1010393, 0x101016f, 0x1010170, 0x1010392, 0x101016d, 0x1010034 }
int styleable AppCompatTextHelper_android_drawableBottom 0
int styleable AppCompatTextHelper_android_drawableEnd 1
int styleable AppCompatTextHelper_android_drawableLeft 2
int styleable AppCompatTextHelper_android_drawableRight 3
int styleable AppCompatTextHelper_android_drawableStart 4
int styleable AppCompatTextHelper_android_drawableTop 5
int styleable AppCompatTextHelper_android_textAppearance 6
int[] styleable AppCompatTextView { 0x1010034, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable AppCompatTextView_android_textAppearance 0
int styleable AppCompatTextView_autoSizeMaxTextSize 1
int styleable AppCompatTextView_autoSizeMinTextSize 2
int styleable AppCompatTextView_autoSizePresetSizes 3
int styleable AppCompatTextView_autoSizeStepGranularity 4
int styleable AppCompatTextView_autoSizeTextType 5
int styleable AppCompatTextView_firstBaselineToTopHeight 6
int styleable AppCompatTextView_fontFamily 7
int styleable AppCompatTextView_lastBaselineToBottomHeight 8
int styleable AppCompatTextView_lineHeight 9
int styleable AppCompatTextView_textAllCaps 10
int[] styleable AppCompatTheme { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10100ae, 0x1010057, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable AppCompatTheme_actionBarDivider 0
int styleable AppCompatTheme_actionBarItemBackground 1
int styleable AppCompatTheme_actionBarPopupTheme 2
int styleable AppCompatTheme_actionBarSize 3
int styleable AppCompatTheme_actionBarSplitStyle 4
int styleable AppCompatTheme_actionBarStyle 5
int styleable AppCompatTheme_actionBarTabBarStyle 6
int styleable AppCompatTheme_actionBarTabStyle 7
int styleable AppCompatTheme_actionBarTabTextStyle 8
int styleable AppCompatTheme_actionBarTheme 9
int styleable AppCompatTheme_actionBarWidgetTheme 10
int styleable AppCompatTheme_actionButtonStyle 11
int styleable AppCompatTheme_actionDropDownStyle 12
int styleable AppCompatTheme_actionMenuTextAppearance 13
int styleable AppCompatTheme_actionMenuTextColor 14
int styleable AppCompatTheme_actionModeBackground 15
int styleable AppCompatTheme_actionModeCloseButtonStyle 16
int styleable AppCompatTheme_actionModeCloseDrawable 17
int styleable AppCompatTheme_actionModeCopyDrawable 18
int styleable AppCompatTheme_actionModeCutDrawable 19
int styleable AppCompatTheme_actionModeFindDrawable 20
int styleable AppCompatTheme_actionModePasteDrawable 21
int styleable AppCompatTheme_actionModePopupWindowStyle 22
int styleable AppCompatTheme_actionModeSelectAllDrawable 23
int styleable AppCompatTheme_actionModeShareDrawable 24
int styleable AppCompatTheme_actionModeSplitBackground 25
int styleable AppCompatTheme_actionModeStyle 26
int styleable AppCompatTheme_actionModeWebSearchDrawable 27
int styleable AppCompatTheme_actionOverflowButtonStyle 28
int styleable AppCompatTheme_actionOverflowMenuStyle 29
int styleable AppCompatTheme_activityChooserViewStyle 30
int styleable AppCompatTheme_alertDialogButtonGroupStyle 31
int styleable AppCompatTheme_alertDialogCenterButtons 32
int styleable AppCompatTheme_alertDialogStyle 33
int styleable AppCompatTheme_alertDialogTheme 34
int styleable AppCompatTheme_android_windowAnimationStyle 35
int styleable AppCompatTheme_android_windowIsFloating 36
int styleable AppCompatTheme_autoCompleteTextViewStyle 37
int styleable AppCompatTheme_borderlessButtonStyle 38
int styleable AppCompatTheme_buttonBarButtonStyle 39
int styleable AppCompatTheme_buttonBarNegativeButtonStyle 40
int styleable AppCompatTheme_buttonBarNeutralButtonStyle 41
int styleable AppCompatTheme_buttonBarPositiveButtonStyle 42
int styleable AppCompatTheme_buttonBarStyle 43
int styleable AppCompatTheme_buttonStyle 44
int styleable AppCompatTheme_buttonStyleSmall 45
int styleable AppCompatTheme_checkboxStyle 46
int styleable AppCompatTheme_checkedTextViewStyle 47
int styleable AppCompatTheme_colorAccent 48
int styleable AppCompatTheme_colorBackgroundFloating 49
int styleable AppCompatTheme_colorButtonNormal 50
int styleable AppCompatTheme_colorControlActivated 51
int styleable AppCompatTheme_colorControlHighlight 52
int styleable AppCompatTheme_colorControlNormal 53
int styleable AppCompatTheme_colorError 54
int styleable AppCompatTheme_colorPrimary 55
int styleable AppCompatTheme_colorPrimaryDark 56
int styleable AppCompatTheme_colorSwitchThumbNormal 57
int styleable AppCompatTheme_controlBackground 58
int styleable AppCompatTheme_dialogCornerRadius 59
int styleable AppCompatTheme_dialogPreferredPadding 60
int styleable AppCompatTheme_dialogTheme 61
int styleable AppCompatTheme_dividerHorizontal 62
int styleable AppCompatTheme_dividerVertical 63
int styleable AppCompatTheme_dropDownListViewStyle 64
int styleable AppCompatTheme_dropdownListPreferredItemHeight 65
int styleable AppCompatTheme_editTextBackground 66
int styleable AppCompatTheme_editTextColor 67
int styleable AppCompatTheme_editTextStyle 68
int styleable AppCompatTheme_homeAsUpIndicator 69
int styleable AppCompatTheme_imageButtonStyle 70
int styleable AppCompatTheme_listChoiceBackgroundIndicator 71
int styleable AppCompatTheme_listDividerAlertDialog 72
int styleable AppCompatTheme_listMenuViewStyle 73
int styleable AppCompatTheme_listPopupWindowStyle 74
int styleable AppCompatTheme_listPreferredItemHeight 75
int styleable AppCompatTheme_listPreferredItemHeightLarge 76
int styleable AppCompatTheme_listPreferredItemHeightSmall 77
int styleable AppCompatTheme_listPreferredItemPaddingLeft 78
int styleable AppCompatTheme_listPreferredItemPaddingRight 79
int styleable AppCompatTheme_panelBackground 80
int styleable AppCompatTheme_panelMenuListTheme 81
int styleable AppCompatTheme_panelMenuListWidth 82
int styleable AppCompatTheme_popupMenuStyle 83
int styleable AppCompatTheme_popupWindowStyle 84
int styleable AppCompatTheme_radioButtonStyle 85
int styleable AppCompatTheme_ratingBarStyle 86
int styleable AppCompatTheme_ratingBarStyleIndicator 87
int styleable AppCompatTheme_ratingBarStyleSmall 88
int styleable AppCompatTheme_searchViewStyle 89
int styleable AppCompatTheme_seekBarStyle 90
int styleable AppCompatTheme_selectableItemBackground 91
int styleable AppCompatTheme_selectableItemBackgroundBorderless 92
int styleable AppCompatTheme_spinnerDropDownItemStyle 93
int styleable AppCompatTheme_spinnerStyle 94
int styleable AppCompatTheme_switchStyle 95
int styleable AppCompatTheme_textAppearanceLargePopupMenu 96
int styleable AppCompatTheme_textAppearanceListItem 97
int styleable AppCompatTheme_textAppearanceListItemSecondary 98
int styleable AppCompatTheme_textAppearanceListItemSmall 99
int styleable AppCompatTheme_textAppearancePopupMenuHeader 100
int styleable AppCompatTheme_textAppearanceSearchResultSubtitle 101
int styleable AppCompatTheme_textAppearanceSearchResultTitle 102
int styleable AppCompatTheme_textAppearanceSmallPopupMenu 103
int styleable AppCompatTheme_textColorAlertDialogListItem 104
int styleable AppCompatTheme_textColorSearchUrl 105
int styleable AppCompatTheme_toolbarNavigationButtonStyle 106
int styleable AppCompatTheme_toolbarStyle 107
int styleable AppCompatTheme_tooltipForegroundColor 108
int styleable AppCompatTheme_tooltipFrameBackground 109
int styleable AppCompatTheme_viewInflaterClass 110
int styleable AppCompatTheme_windowActionBar 111
int styleable AppCompatTheme_windowActionBarOverlay 112
int styleable AppCompatTheme_windowActionModeOverlay 113
int styleable AppCompatTheme_windowFixedHeightMajor 114
int styleable AppCompatTheme_windowFixedHeightMinor 115
int styleable AppCompatTheme_windowFixedWidthMajor 116
int styleable AppCompatTheme_windowFixedWidthMinor 117
int styleable AppCompatTheme_windowMinWidthMajor 118
int styleable AppCompatTheme_windowMinWidthMinor 119
int styleable AppCompatTheme_windowNoTitle 120
int[] styleable ButtonBarLayout { 0x0 }
int styleable ButtonBarLayout_allowStacking 0
int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 }
int styleable ColorStateListItem_alpha 0
int styleable ColorStateListItem_android_alpha 1
int styleable ColorStateListItem_android_color 2
int[] styleable CompoundButton { 0x1010107, 0x0, 0x0 }
int styleable CompoundButton_android_button 0
int styleable CompoundButton_buttonTint 1
int styleable CompoundButton_buttonTintMode 2
int[] styleable CoordinatorLayout { 0x0, 0x0 }
int styleable CoordinatorLayout_keylines 0
int styleable CoordinatorLayout_statusBarBackground 1
int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable CoordinatorLayout_Layout_android_layout_gravity 0
int styleable CoordinatorLayout_Layout_layout_anchor 1
int styleable CoordinatorLayout_Layout_layout_anchorGravity 2
int styleable CoordinatorLayout_Layout_layout_behavior 3
int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4
int styleable CoordinatorLayout_Layout_layout_insetEdge 5
int styleable CoordinatorLayout_Layout_layout_keyline 6
int[] styleable DrawerArrowToggle { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable DrawerArrowToggle_arrowHeadLength 0
int styleable DrawerArrowToggle_arrowShaftLength 1
int styleable DrawerArrowToggle_barLength 2
int styleable DrawerArrowToggle_color 3
int styleable DrawerArrowToggle_drawableSize 4
int styleable DrawerArrowToggle_gapBetweenBars 5
int styleable DrawerArrowToggle_spinBars 6
int styleable DrawerArrowToggle_thickness 7
int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable FontFamily_fontProviderAuthority 0
int styleable FontFamily_fontProviderCerts 1
int styleable FontFamily_fontProviderFetchStrategy 2
int styleable FontFamily_fontProviderFetchTimeout 3
int styleable FontFamily_fontProviderPackage 4
int styleable FontFamily_fontProviderQuery 5
int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable FontFamilyFont_android_font 0
int styleable FontFamilyFont_android_fontStyle 1
int styleable FontFamilyFont_android_fontVariationSettings 2
int styleable FontFamilyFont_android_fontWeight 3
int styleable FontFamilyFont_android_ttcIndex 4
int styleable FontFamilyFont_font 5
int styleable FontFamilyFont_fontStyle 6
int styleable FontFamilyFont_fontVariationSettings 7
int styleable FontFamilyFont_fontWeight 8
int styleable FontFamilyFont_ttcIndex 9
int[] styleable GIFVIEW { 0x0, 0x0, 0x0 }
int styleable GIFVIEW_authPlay 0
int styleable GIFVIEW_gifSrc 1
int styleable GIFVIEW_playCount 2
int[] styleable GenericDraweeHierarchy { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable GenericDraweeHierarchy_actualImageScaleType 0
int styleable GenericDraweeHierarchy_backgroundImage 1
int styleable GenericDraweeHierarchy_fadeDuration 2
int styleable GenericDraweeHierarchy_failureImage 3
int styleable GenericDraweeHierarchy_failureImageScaleType 4
int styleable GenericDraweeHierarchy_overlayImage 5
int styleable GenericDraweeHierarchy_placeholderImage 6
int styleable GenericDraweeHierarchy_placeholderImageScaleType 7
int styleable GenericDraweeHierarchy_pressedStateOverlayImage 8
int styleable GenericDraweeHierarchy_progressBarAutoRotateInterval 9
int styleable GenericDraweeHierarchy_progressBarImage 10
int styleable GenericDraweeHierarchy_progressBarImageScaleType 11
int styleable GenericDraweeHierarchy_retryImage 12
int styleable GenericDraweeHierarchy_retryImageScaleType 13
int styleable GenericDraweeHierarchy_roundAsCircle 14
int styleable GenericDraweeHierarchy_roundBottomEnd 15
int styleable GenericDraweeHierarchy_roundBottomLeft 16
int styleable GenericDraweeHierarchy_roundBottomRight 17
int styleable GenericDraweeHierarchy_roundBottomStart 18
int styleable GenericDraweeHierarchy_roundTopEnd 19
int styleable GenericDraweeHierarchy_roundTopLeft 20
int styleable GenericDraweeHierarchy_roundTopRight 21
int styleable GenericDraweeHierarchy_roundTopStart 22
int styleable GenericDraweeHierarchy_roundWithOverlayColor 23
int styleable GenericDraweeHierarchy_roundedCornerRadius 24
int styleable GenericDraweeHierarchy_roundingBorderColor 25
int styleable GenericDraweeHierarchy_roundingBorderPadding 26
int styleable GenericDraweeHierarchy_roundingBorderWidth 27
int styleable GenericDraweeHierarchy_viewAspectRatio 28
int[] styleable GifTextureView { 0x0, 0x0 }
int styleable GifTextureView_gifSource 0
int styleable GifTextureView_isOpaque 1
int[] styleable GifView { 0x0, 0x0 }
int styleable GifView_freezesAnimation 0
int styleable GifView_loopCount 1
int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 }
int styleable GradientColor_android_centerColor 0
int styleable GradientColor_android_centerX 1
int styleable GradientColor_android_centerY 2
int styleable GradientColor_android_endColor 3
int styleable GradientColor_android_endX 4
int styleable GradientColor_android_endY 5
int styleable GradientColor_android_gradientRadius 6
int styleable GradientColor_android_startColor 7
int styleable GradientColor_android_startX 8
int styleable GradientColor_android_startY 9
int styleable GradientColor_android_tileMode 10
int styleable GradientColor_android_type 11
int[] styleable GradientColorItem { 0x10101a5, 0x1010514 }
int styleable GradientColorItem_android_color 0
int styleable GradientColorItem_android_offset 1
int[] styleable IMGColorRadio { 0x0, 0x0 }
int styleable IMGColorRadio_image_color 0
int styleable IMGColorRadio_image_stroke_color 1
int[] styleable LinearLayoutCompat { 0x1010126, 0x1010127, 0x10100af, 0x10100c4, 0x1010128, 0x0, 0x0, 0x0, 0x0 }
int styleable LinearLayoutCompat_android_baselineAligned 0
int styleable LinearLayoutCompat_android_baselineAlignedChildIndex 1
int styleable LinearLayoutCompat_android_gravity 2
int styleable LinearLayoutCompat_android_orientation 3
int styleable LinearLayoutCompat_android_weightSum 4
int styleable LinearLayoutCompat_divider 5
int styleable LinearLayoutCompat_dividerPadding 6
int styleable LinearLayoutCompat_measureWithLargestChild 7
int styleable LinearLayoutCompat_showDividers 8
int[] styleable LinearLayoutCompat_Layout { 0x10100b3, 0x10100f5, 0x1010181, 0x10100f4 }
int styleable LinearLayoutCompat_Layout_android_layout_gravity 0
int styleable LinearLayoutCompat_Layout_android_layout_height 1
int styleable LinearLayoutCompat_Layout_android_layout_weight 2
int styleable LinearLayoutCompat_Layout_android_layout_width 3
int[] styleable ListPopupWindow { 0x10102ac, 0x10102ad }
int styleable ListPopupWindow_android_dropDownHorizontalOffset 0
int styleable ListPopupWindow_android_dropDownVerticalOffset 1
int[] styleable MenuGroup { 0x10101e0, 0x101000e, 0x10100d0, 0x10101de, 0x10101df, 0x1010194 }
int styleable MenuGroup_android_checkableBehavior 0
int styleable MenuGroup_android_enabled 1
int styleable MenuGroup_android_id 2
int styleable MenuGroup_android_menuCategory 3
int styleable MenuGroup_android_orderInCategory 4
int styleable MenuGroup_android_visible 5
int[] styleable MenuItem { 0x0, 0x0, 0x0, 0x0, 0x10101e3, 0x10101e5, 0x1010106, 0x101000e, 0x1010002, 0x10100d0, 0x10101de, 0x10101e4, 0x101026f, 0x10101df, 0x10101e1, 0x10101e2, 0x1010194, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable MenuItem_actionLayout 0
int styleable MenuItem_actionProviderClass 1
int styleable MenuItem_actionViewClass 2
int styleable MenuItem_alphabeticModifiers 3
int styleable MenuItem_android_alphabeticShortcut 4
int styleable MenuItem_android_checkable 5
int styleable MenuItem_android_checked 6
int styleable MenuItem_android_enabled 7
int styleable MenuItem_android_icon 8
int styleable MenuItem_android_id 9
int styleable MenuItem_android_menuCategory 10
int styleable MenuItem_android_numericShortcut 11
int styleable MenuItem_android_onClick 12
int styleable MenuItem_android_orderInCategory 13
int styleable MenuItem_android_title 14
int styleable MenuItem_android_titleCondensed 15
int styleable MenuItem_android_visible 16
int styleable MenuItem_contentDescription 17
int styleable MenuItem_iconTint 18
int styleable MenuItem_iconTintMode 19
int styleable MenuItem_numericModifiers 20
int styleable MenuItem_showAsAction 21
int styleable MenuItem_tooltipText 22
int[] styleable MenuView { 0x101012f, 0x101012d, 0x1010130, 0x1010131, 0x101012c, 0x101012e, 0x10100ae, 0x0, 0x0 }
int styleable MenuView_android_headerBackground 0
int styleable MenuView_android_horizontalDivider 1
int styleable MenuView_android_itemBackground 2
int styleable MenuView_android_itemIconDisabledAlpha 3
int styleable MenuView_android_itemTextAppearance 4
int styleable MenuView_android_verticalDivider 5
int styleable MenuView_android_windowAnimationStyle 6
int styleable MenuView_preserveIconSpacing 7
int styleable MenuView_subMenuArrow 8
int[] styleable PopupWindow { 0x10102c9, 0x1010176, 0x0 }
int styleable PopupWindow_android_popupAnimationStyle 0
int styleable PopupWindow_android_popupBackground 1
int styleable PopupWindow_overlapAnchor 2
int[] styleable PopupWindowBackgroundState { 0x0 }
int styleable PopupWindowBackgroundState_state_above_anchor 0
int[] styleable RecycleListView { 0x0, 0x0 }
int styleable RecycleListView_paddingBottomNoButtons 0
int styleable RecycleListView_paddingTopNoTitle 1
int[] styleable RecyclerView { 0x10100f1, 0x10100c4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable RecyclerView_android_descendantFocusability 0
int styleable RecyclerView_android_orientation 1
int styleable RecyclerView_fastScrollEnabled 2
int styleable RecyclerView_fastScrollHorizontalThumbDrawable 3
int styleable RecyclerView_fastScrollHorizontalTrackDrawable 4
int styleable RecyclerView_fastScrollVerticalThumbDrawable 5
int styleable RecyclerView_fastScrollVerticalTrackDrawable 6
int styleable RecyclerView_layoutManager 7
int styleable RecyclerView_reverseLayout 8
int styleable RecyclerView_spanCount 9
int styleable RecyclerView_stackFromEnd 10
int[] styleable SearchView { 0x10100da, 0x1010264, 0x1010220, 0x101011f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable SearchView_android_focusable 0
int styleable SearchView_android_imeOptions 1
int styleable SearchView_android_inputType 2
int styleable SearchView_android_maxWidth 3
int styleable SearchView_closeIcon 4
int styleable SearchView_commitIcon 5
int styleable SearchView_defaultQueryHint 6
int styleable SearchView_goIcon 7
int styleable SearchView_iconifiedByDefault 8
int styleable SearchView_layout 9
int styleable SearchView_queryBackground 10
int styleable SearchView_queryHint 11
int styleable SearchView_searchHintIcon 12
int styleable SearchView_searchIcon 13
int styleable SearchView_submitBackground 14
int styleable SearchView_suggestionRowLayout 15
int styleable SearchView_voiceIcon 16
int[] styleable SimpleDraweeView { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable SimpleDraweeView_actualImageResource 0
int styleable SimpleDraweeView_actualImageScaleType 1
int styleable SimpleDraweeView_actualImageUri 2
int styleable SimpleDraweeView_backgroundImage 3
int styleable SimpleDraweeView_fadeDuration 4
int styleable SimpleDraweeView_failureImage 5
int styleable SimpleDraweeView_failureImageScaleType 6
int styleable SimpleDraweeView_overlayImage 7
int styleable SimpleDraweeView_placeholderImage 8
int styleable SimpleDraweeView_placeholderImageScaleType 9
int styleable SimpleDraweeView_pressedStateOverlayImage 10
int styleable SimpleDraweeView_progressBarAutoRotateInterval 11
int styleable SimpleDraweeView_progressBarImage 12
int styleable SimpleDraweeView_progressBarImageScaleType 13
int styleable SimpleDraweeView_retryImage 14
int styleable SimpleDraweeView_retryImageScaleType 15
int styleable SimpleDraweeView_roundAsCircle 16
int styleable SimpleDraweeView_roundBottomEnd 17
int styleable SimpleDraweeView_roundBottomLeft 18
int styleable SimpleDraweeView_roundBottomRight 19
int styleable SimpleDraweeView_roundBottomStart 20
int styleable SimpleDraweeView_roundTopEnd 21
int styleable SimpleDraweeView_roundTopLeft 22
int styleable SimpleDraweeView_roundTopRight 23
int styleable SimpleDraweeView_roundTopStart 24
int styleable SimpleDraweeView_roundWithOverlayColor 25
int styleable SimpleDraweeView_roundedCornerRadius 26
int styleable SimpleDraweeView_roundingBorderColor 27
int styleable SimpleDraweeView_roundingBorderPadding 28
int styleable SimpleDraweeView_roundingBorderWidth 29
int styleable SimpleDraweeView_viewAspectRatio 30
int[] styleable Spinner { 0x1010262, 0x10100b2, 0x1010176, 0x101017b, 0x0 }
int styleable Spinner_android_dropDownWidth 0
int styleable Spinner_android_entries 1
int styleable Spinner_android_popupBackground 2
int styleable Spinner_android_prompt 3
int styleable Spinner_popupTheme 4
int[] styleable StateListDrawable { 0x1010196, 0x101011c, 0x101030c, 0x101030d, 0x1010195, 0x1010194 }
int styleable StateListDrawable_android_constantSize 0
int styleable StateListDrawable_android_dither 1
int styleable StateListDrawable_android_enterFadeDuration 2
int styleable StateListDrawable_android_exitFadeDuration 3
int styleable StateListDrawable_android_variablePadding 4
int styleable StateListDrawable_android_visible 5
int[] styleable StateListDrawableItem { 0x1010199 }
int styleable StateListDrawableItem_android_drawable 0
int[] styleable SwitchButton { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable SwitchButton_sb_background 0
int styleable SwitchButton_sb_border_width 1
int styleable SwitchButton_sb_button_color 2
int styleable SwitchButton_sb_checked 3
int styleable SwitchButton_sb_checked_color 4
int styleable SwitchButton_sb_checkline_color 5
int styleable SwitchButton_sb_checkline_width 6
int styleable SwitchButton_sb_effect_duration 7
int styleable SwitchButton_sb_enable_effect 8
int styleable SwitchButton_sb_shadow_color 9
int styleable SwitchButton_sb_shadow_effect 10
int styleable SwitchButton_sb_shadow_offset 11
int styleable SwitchButton_sb_shadow_radius 12
int styleable SwitchButton_sb_show_indicator 13
int styleable SwitchButton_sb_uncheck_color 14
int styleable SwitchButton_sb_uncheckcircle_color 15
int styleable SwitchButton_sb_uncheckcircle_radius 16
int styleable SwitchButton_sb_uncheckcircle_width 17
int[] styleable SwitchCompat { 0x1010125, 0x1010124, 0x1010142, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable SwitchCompat_android_textOff 0
int styleable SwitchCompat_android_textOn 1
int styleable SwitchCompat_android_thumb 2
int styleable SwitchCompat_showText 3
int styleable SwitchCompat_splitTrack 4
int styleable SwitchCompat_switchMinWidth 5
int styleable SwitchCompat_switchPadding 6
int styleable SwitchCompat_switchTextAppearance 7
int styleable SwitchCompat_thumbTextPadding 8
int styleable SwitchCompat_thumbTint 9
int styleable SwitchCompat_thumbTintMode 10
int styleable SwitchCompat_track 11
int styleable SwitchCompat_trackTint 12
int styleable SwitchCompat_trackTintMode 13
int[] styleable TextAppearance { 0x10103ac, 0x1010161, 0x1010162, 0x1010163, 0x1010164, 0x1010098, 0x101009a, 0x101009b, 0x1010095, 0x1010097, 0x1010096, 0x0, 0x0 }
int styleable TextAppearance_android_fontFamily 0
int styleable TextAppearance_android_shadowColor 1
int styleable TextAppearance_android_shadowDx 2
int styleable TextAppearance_android_shadowDy 3
int styleable TextAppearance_android_shadowRadius 4
int styleable TextAppearance_android_textColor 5
int styleable TextAppearance_android_textColorHint 6
int styleable TextAppearance_android_textColorLink 7
int styleable TextAppearance_android_textSize 8
int styleable TextAppearance_android_textStyle 9
int styleable TextAppearance_android_typeface 10
int styleable TextAppearance_fontFamily 11
int styleable TextAppearance_textAllCaps 12
int[] styleable Toolbar { 0x10100af, 0x1010140, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable Toolbar_android_gravity 0
int styleable Toolbar_android_minHeight 1
int styleable Toolbar_buttonGravity 2
int styleable Toolbar_collapseContentDescription 3
int styleable Toolbar_collapseIcon 4
int styleable Toolbar_contentInsetEnd 5
int styleable Toolbar_contentInsetEndWithActions 6
int styleable Toolbar_contentInsetLeft 7
int styleable Toolbar_contentInsetRight 8
int styleable Toolbar_contentInsetStart 9
int styleable Toolbar_contentInsetStartWithNavigation 10
int styleable Toolbar_logo 11
int styleable Toolbar_logoDescription 12
int styleable Toolbar_maxButtonHeight 13
int styleable Toolbar_navigationContentDescription 14
int styleable Toolbar_navigationIcon 15
int styleable Toolbar_popupTheme 16
int styleable Toolbar_subtitle 17
int styleable Toolbar_subtitleTextAppearance 18
int styleable Toolbar_subtitleTextColor 19
int styleable Toolbar_title 20
int styleable Toolbar_titleMargin 21
int styleable Toolbar_titleMarginBottom 22
int styleable Toolbar_titleMarginEnd 23
int styleable Toolbar_titleMarginStart 24
int styleable Toolbar_titleMarginTop 25
int styleable Toolbar_titleMargins 26
int styleable Toolbar_titleTextAppearance 27
int styleable Toolbar_titleTextColor 28
int[] styleable View { 0x10100da, 0x1010000, 0x0, 0x0, 0x0 }
int styleable View_android_focusable 0
int styleable View_android_theme 1
int styleable View_paddingEnd 2
int styleable View_paddingStart 3
int styleable View_theme 4
int[] styleable ViewBackgroundHelper { 0x10100d4, 0x0, 0x0 }
int styleable ViewBackgroundHelper_android_background 0
int styleable ViewBackgroundHelper_backgroundTint 1
int styleable ViewBackgroundHelper_backgroundTintMode 2
int[] styleable ViewStubCompat { 0x10100d0, 0x10100f3, 0x10100f2 }
int styleable ViewStubCompat_android_id 0
int styleable ViewStubCompat_android_inflatedId 1
int styleable ViewStubCompat_android_layout 2
int xml dcloud_file_provider 0x0
int xml dcloud_gg_file_provider 0x0
nativeplugins/Hanyin-Plugin/android/classes.jar
Binary files differ
nativeplugins/Hanyin-Plugin/android/hanyin_plugin1.0.4.aar
Binary files differ
nativeplugins/Hanyin-Plugin/android/libs/CPCL_V1.07.jar
Binary files differ
nativeplugins/Hanyin-Plugin/android/proguard.txt
nativeplugins/Hanyin-Plugin/package.json
New file
@@ -0,0 +1,21 @@
{
    "name": "HanyinPlugin",
    "id": "Hanyin-Plugin",
    "version": "1.0.4",
    "description": "汉印便携式打印机",
    "_dp_type":"nativeplugin",
    "_dp_nativeplugin":{
        "android": {
            "plugins": [
                {
                    "type": "module",
                    "name": "Hanyin-Plugin",
                    "class": "com.example.hanyin_plugin.Methods"
                }
            ],
            "integrateType": "aar",
            "minSdkVersion" : 19,
            "targetSdkVersion": 31
        }
    }
}
pages.json
@@ -1,11 +1,27 @@
{
    "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
        {
            "path": "pages/print/printUNI",
            "style": {
                "navigationBarTitleText": "UNI打印"
            }
        },
        {
            "path": "pages/print/print",
            "style": {
                "navigationBarTitleText": "打印"
            }
        },
        {
            "path": "pages/print/qr",
            "style": {
                "navigationBarTitleText": "二维码"
            }
        },
        {
            "path": "pages/login/login",
            "style": {
@@ -66,18 +82,8 @@
                "navigationBarTitleText": "库存盘点"
            }
        },
        {
            "path": "pages/print/print",
            "style": {
                "navigationBarTitleText": "打印"
            }
        },
        {
            "path": "pages/print/printUNI",
            "style": {
                "navigationBarTitleText": "UNI打印"
            }
        },
        {
            "path": "pages/login/logOut",
            "style": {
pages/print/printUNI.vue
@@ -1,723 +1,131 @@
<template>
    <view>
        <page-head :title="title"></page-head>
        <view class="uni-padding-wrap uni-common-mt">
            <view>
                本蓝牙协议只支持低功耗蓝牙协议ble。如果想连接非ble蓝牙设备,请在社区搜索 Native.js 蓝牙。
    <view class="content">
        <view>
            <view class="bluetoothConnected">
                <view class="bluetoothList" v-for="(item,index) in GET_CONNECTBLEDATA" :key="index" @tap="confirm_bluetooth(item)">
                    <view class="bluetoothList-name">名称:{{item.name}}</view>
                    <view class="bluetoothList-mac">地址:{{item.mac}}</view>
                </view>
            </view>
            <view class="uni-btn-v">
                <button type="primary" :disabled="disabled[0]" @click="openBluetoothAdapter">
                    初始化蓝牙模块
                </button>
                <view v-if="!adapterState.available">
                    {{ '蓝牙适配器不可用,请初始化蓝牙模块' }}
            <button type="default" @click="search_bluetooth">搜索蓝牙</button>
            <button @click="senBleLabel">打印</button>
            <view class="bluetoothItem" v-if="GET_INFODATA">
                <view class="bluetoothList" v-for="(item,index) in GET_INFODATA" :key="index" @tap="confirm_bluetooth(item)">
                    <view class="bluetoothList-name">名称:{{item.name}}</view>
                    <view class="bluetoothList-mac">地址:{{item.mac}}</view>
                </view>
                <button
                    type="primary"
                    :loading="searchLoad"
                    :disabled="disabled[1]"
                    @click="startBluetoothDevicesDiscovery"
                >
                    开始搜索蓝牙设备
                </button>
                <button
                    type="primary"
                    :disabled="disabled[2]"
                    @click="stopBluetoothDevicesDiscovery(false)"
                >
                    停止搜索蓝牙设备
                </button>
                <button
                    type="primary"
                    :loading="newDeviceLoad"
                    :disabled="disabled[3]"
                    @click="queryDevices"
                >
                    选择设备
                </button>
                <view v-if="equipment.length > 0">
                    {{
                        (connected ? '已连接设备' : '已选择设备') +
                            ' : ' +
                            equipment[0].name +
                            ' (' +
                            equipment[0].deviceId +
                            ')'
                    }}
                </view>
                <button type="primary" :disabled="disabled[4]" @click="createBLEConnection">
                    连接蓝牙设备
                </button>
                <button type="primary" :disabled="disabled[5]" @click="getBLEDeviceServices">
                    选择设备服务
                </button>
                <view v-if="servicesData.length > 0">已选服务uuid:{{ servicesData[0].uuid }}</view>
                <button type="primary" :disabled="disabled[6]" @click="getBLEDeviceCharacteristics">
                    获取服务的特征值
                </button>
                <view v-if="characteristicsData.length > 0">
                    <view class="uni-list_name">uuid:{{ characteristicsData[0].uuid }}</view>
                    <view class="uni-list_item">
                        是否支持 read 操作:{{ characteristicsData[0].properties.read }}
                    </view>
                    <view class="uni-list_item">
                        是否支持 write 操作:{{ characteristicsData[0].properties.write }}
                    </view>
                    <view class="uni-list_item">
                        是否支持 notify 操作:{{ characteristicsData[0].properties.notify }}
                    </view>
                    <view class="uni-list_item">
                        是否支持 indicate 操作:{{ characteristicsData[0].properties.indicate }}
                    </view>
                </view>
                <!-- <button type="primary" :disabled="disabled[7]" @click="readBLECharacteristicValue">
                    读取特征值数据
                </button>
                <view v-if="valueChangeData.serviceId">
                    <view class="list-name">
                        特征值最新的值:{{ valueChangeData.value || '还没有最新值' }}
                    </view>
                </view> -->
                <!-- <button type="primary" :disabled="disabled[8]" @click="w">写入特征值数据</button> -->
                <button type="primary" :disabled="disabled[9]" @click="closeBLEConnection">
                    断开蓝牙设备
                </button>
                <button type="primary" :disabled="disabled[10]" @click="closeBluetoothAdapter">
                    关闭蓝牙模块
                </button>
            </view>
        </view>
        <!-- 遮罩 -->
        <view v-if="maskShow" class="uni-mask" @touchmove.stop.prevent="moveHandle" @click="maskclose">
            <scroll-view class="uni-scroll_box" scroll-y @touchmove.stop.prevent="moveHandle" @click.stop="moveHandle">
                <view class="uni-title">
                    已经发现{{ list.length }}{{ showMaskType === 'device' ? '台设备' : '个服务' }}:
                </view>
                <view
                    class="uni-list-box"
                    v-for="(item, index) in list"
                    :key="index"
                    @click="tapQuery(item)"
                >
                    <view v-if="showMaskType === 'device'">
                        <view class="uni-list_name">{{ item.name || item.localName }}</view>
                        <view class="uni-list_item">信号强度:{{ item.RSSI }}dBm</view>
                        <view class="uni-list_item">UUID:{{ item.deviceId }}</view>
                        <!-- <view class="list-item" v-if="showMaskType === 'device'">
                            Service数量:{{ item.advertisServiceUUIDs.length }}
                        </view> -->
                    </view>
                    <view v-if="showMaskType === 'service'">
                        <view class="uni-list_item" style="line-height:2.2;">
                            UUID: {{ item.uuid }}
                            <text v-if="showMaskType === 'service'">
                                {{ item.isPrimary ? '(主服务)' : '' }}
                            </text>
                        </view>
                    </view>
                    <view v-if="showMaskType === 'characteristics'">
                        <view class="uni-list_name">uuid:{{ item.uuid }}</view>
                        <view class="uni-list_item">是否支持 read 操作:{{ item.properties.read }}</view>
                        <view class="uni-list_item">
                            是否支持 write 操作:{{ item.properties.write }}
                        </view>
                        <view class="uni-list_item">
                            是否支持 notify 操作:{{ item.properties.notify }}
                        </view>
                        <view class="uni-list_item">
                            是否支持 indicate 操作:{{ item.properties.indicate }}
                        </view>
                    </view>
                </view>
            </scroll-view>
        </view>
    </view>
</template>
<script>
export default {
    data() {
        return {
            title: 'bluetooth',
            disabled: [false, true, true, true, true, true, true, true, true, true, true],
            newDeviceLoad: false,
            searchLoad: false,
            maskShow: false,
            equipment: [],
            adapterState: {
                discovering: false,
                available: false
    import printConnect from "@/common/print.js";  //引入打印机模板文件
    let _this = null;
    import {
        mapGetters,
        mapActions
    } from 'vuex';
    import {
        GET_INFODATA,
        GET_CONNECTBLEDATA
    } from "@/store/gettersType.js";
    import {
        SET_CONNECTBLEDATA
    } from '@/store/actionsType.js';
    // #ifdef APP-PLUS
    const HanyinPlugin = uni.requireNativePlugin('Hanyin-Plugin'); //汉印
    // #endif
    let print;
    export default {
        data() {
            return {
                bArray: [], //用于搜索蓝牙去重用的
                no_match_list: [], //没有配对的蓝牙列表
                match_list: "", //已连接蓝牙打印机
                val: "",
                dateTimer: "",
                valArr: [],
                // 巴枪参数
                // broadcase_actions: "com.android.receive_scan_action",
                // broadcast_flag: "data"
            };
        },
        computed: {
            ...mapGetters([GET_INFODATA, GET_CONNECTBLEDATA])
        },
        onShow() {
            uni.hideLoading();
            //检查是否已连接蓝牙
            // this.$check_bluetooth_connect();
            console.log('onShow');
        },
        onHide() {
            console.log('onHide');
        },
        onUnload() {
            console.log('onUnload');
        },
        onLoad(options) {
            _this = this;
             this.$init_bluetooth();
        },
        methods: {
            ...mapActions([SET_CONNECTBLEDATA]),
            senBleLabel() {
                // console.log(this.$Mock.order_data);
                if(!print) return;
                print.startPrint(this.$Mock.order_data);
            },
            connected: false,
            showMaskType: 'device',
            servicesData: [],
            characteristicsData: [],
            valueChangeData: {},
            isStop:true ,
            list: []
        };
    },
    onLoad() {
        this.onBLEConnectionStateChange();
    },
    methods: {
        moveHandle() {},
        /**
         * 关闭遮罩
         */
        maskclose(){
            this.maskShow = false;
        },
        /**
         * 选择设备
         */
        queryDevices() {
            // this.newDeviceLoad = true;
            this.showMaskType = 'device';
            this.maskShow = true;
        },
        tapQuery(item) {
            if (this.showMaskType === 'device') {
                this.$set(this.disabled, 4, false);
                if (this.equipment.length > 0) {
                    this.equipment[0] = item;
                } else {
                    this.equipment.push(item);
                }
                this.newDeviceLoad = false;
            }
            if (this.showMaskType === 'service') {
                this.$set(this.disabled, 6, false);
                if (this.servicesData.length > 0) {
                    this.servicesData[0] = item;
                } else {
                    this.servicesData.push(item);
                }
            }
            if (this.showMaskType === 'characteristics') {
                this.$set(this.disabled, 7, false);
                if (this.characteristicsData.length > 0) {
                    this.characteristicsData[0] = item;
                } else {
                    this.characteristicsData.push(item);
                }
            }
            this.maskShow = false;
        },
        /**
         * 初始化蓝牙设备
         */
        openBluetoothAdapter() {
            uni.openBluetoothAdapter({
                success: e => {
                    console.log('初始化蓝牙成功:' + e.errMsg);
                    console.log(JSON.stringify(e));
                    this.isStop = false ;
                    this.$set(this.disabled, 0, true);
                    this.$set(this.disabled, 1, false);
                    this.$set(this.disabled, 10, false);
                    this.getBluetoothAdapterState();
                },
                fail: e => {
                    console.log(e)
                    console.log('初始化蓝牙失败,错误码:' + (e.errCode || e.errMsg));
                    if (e.errCode !== 0) {
                        initTypes(e.errCode,e.errMsg);
                    }
                }
            });
        },
        /**
         * 开始搜索蓝牙设备
         */
        startBluetoothDevicesDiscovery() {
            uni.startBluetoothDevicesDiscovery({
                success: e => {
                    console.log('开始搜索蓝牙设备:' + e.errMsg);
                    this.searchLoad = true;
                    this.$set(this.disabled, 1, true);
                    this.$set(this.disabled, 2, false);
                    this.$set(this.disabled, 3, false);
                    this.onBluetoothDeviceFound();
                },
                fail: e => {
                    console.log('搜索蓝牙设备失败,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                    }
                }
            });
        },
        /**
         * 停止搜索蓝牙设备
         */
        stopBluetoothDevicesDiscovery(types) {
            uni.stopBluetoothDevicesDiscovery({
                success: e => {
                    console.log('停止搜索蓝牙设备:' + e.errMsg);
                    if (types) {
                        this.$set(this.disabled, 1, true);
                    } else {
                        this.$set(this.disabled, 1, false);
                    }
                    this.$set(this.disabled, 2, true);
                    // this.$set(this.disabled, 3, true);
                    this.searchLoad = false;
                },
                fail: e => {
                    console.log('停止搜索蓝牙设备失败,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                    }
                }
            });
        },
        /**
         * 发现外围设备
         */
        onBluetoothDeviceFound() {
            uni.onBluetoothDeviceFound(devices => {
                console.log('开始监听寻找到新设备的事件');
                // this.$set(this.disabled, 3, false);
                this.getBluetoothDevices();
            });
        },
        /**
         * 获取在蓝牙模块生效期间所有已发现的蓝牙设备。包括已经和本机处于连接状态的设备。
         */
        getBluetoothDevices() {
            uni.getBluetoothDevices({
                success: res => {
                    this.newDeviceLoad = false;
                    console.log('获取蓝牙设备成功:' + res.errMsg);
                    // console.log(JSON.stringify(res))
                    this.list = res.devices;
                },
                fail: e => {
                    console.log('获取蓝牙设备错误,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                    }
                }
            });
        },
        /**
         * 获取本机蓝牙适配器状态
         */
        getBluetoothAdapterState() {
            console.log('--->');
            uni.getBluetoothAdapterState({
                success: res => {
                    console.log(JSON.stringify(res));
                    this.adapterState = res;
                },
                fail: e => {
                    console.log('获取本机蓝牙适配器状态失败,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                    }
                }
            });
        },
        /**
         * 连接低功耗蓝牙
         */
        createBLEConnection() {
            let deviceId = this.equipment[0].deviceId;
            uni.showToast({
                title: '连接蓝牙...',
                icon: 'loading',
                duration: 99999
            });
            uni.createBLEConnection({
                // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
                deviceId,
                success: res => {
            // 连接打印机
            confirm_bluetooth(item) {
                let {
                    name,
                    mac
                } = item;
                //判断蓝牙是否打开
                this.$check_bluetooth_open().then(res => {
                    console.log(res);
                    console.log('连接蓝牙成功:' + res.errMsg);
                    // 连接设备后断开搜索 并且不能搜索设备
                    this.stopBluetoothDevicesDiscovery(true);
                    uni.hideToast();
                    uni.showToast({
                        title: '连接成功',
                        icon: 'success',
                        duration: 2000
                    });
                    this.$set(this.disabled, 3, true);
                    this.$set(this.disabled, 4, true);
                    this.$set(this.disabled, 5, false);
                    this.$set(this.disabled, 9, false);
                    this.connected = true;
                },
                fail: e => {
                    console.log('连接低功耗蓝牙失败,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                    //进行打印机连接
                    if (res) {
                        print =new printConnect(item);  //打印机连接
                    }
                }
            });
        },
        /**
         * 断开与低功耗蓝牙设备的连接
         */
        closeBLEConnection() {
            let deviceId = this.equipment[0].deviceId;
            uni.closeBLEConnection({
                deviceId,
                success: res => {
                    console.log(res);
                    console.log('断开低功耗蓝牙成功:' + res.errMsg);
                    this.$set(this.disabled, 1, false);
                    this.$set(this.disabled, 3, true);
                    this.$set(this.disabled, 4, true);
                    this.$set(this.disabled, 5, true);
                    this.$set(this.disabled, 6, true);
                    this.$set(this.disabled, 7, true);
                    this.$set(this.disabled, 8, true);
                    this.$set(this.disabled, 9, true);
                    this.equipment = [];
                    this.servicesData = [];
                    this.characteristicsData = [];
                },
                fail: e => {
                    console.log('断开低功耗蓝牙成功,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                })
            },
            //搜索没匹配的蓝牙设备
            search_bluetooth(address) {
                let _this = this;
                //检查蓝牙是否开启
                this.$check_bluetooth_open().then(ores => {
                    if (ores) {
                        console.log(ores);
                        //搜索蓝牙
                        _this.$search_bluetooth().then(bres => {
                            console.log(bres);
                            if (bres.code) {
                                _this.$search_pipei().then(pres => {
                                    console.log(pres);
                                })
                            }
                        })
                    }
                }
            });
        },
        /**
         * 获取所有服务
         */
        getBLEDeviceServices() {
            let deviceId = this.equipment[0].deviceId;
            console.log('获取所有服务的 uuid:' + deviceId);
            uni.getBLEDeviceServices({
                // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
                deviceId,
                success: res => {
                    console.log(JSON.stringify(res.services));
                    console.log('获取设备服务成功:' + res.errMsg);
                    this.$set(this.disabled, 7, true);
                    this.$set(this.disabled, 8, true);
                    this.showMaskType = 'service';
                    this.list = res.services;
                    this.characteristicsData = [];
                    if (this.list.length <= 0) {
                        toast('获取服务失败,请重试!');
                        return;
                    }
                    this.maskShow = true;
                },
                fail: e => {
                    console.log('获取设备服务失败,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                    }
                }
            });
        },
        /**
         * 获取某个服务下的所有特征值
         */
        getBLEDeviceCharacteristics() {
            let deviceId = this.equipment[0].deviceId;
            let serviceId = this.servicesData[0].uuid;
            console.log(deviceId);
            console.log(serviceId);
            uni.getBLEDeviceCharacteristics({
                // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
                deviceId,
                // 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
                serviceId,
                success: res => {
                    console.log(JSON.stringify(res));
                    console.log('获取特征值成功:' + res.errMsg);
                    this.$set(this.disabled, 7, true);
                    this.valueChangeData = {};
                    this.showMaskType = 'characteristics';
                    this.list = res.characteristics;
                    if (this.list.length <= 0) {
                        toast('获取特征值失败,请重试!');
                        return;
                    }
                    this.maskShow = true;
                },
                fail: e => {
                    console.log('获取特征值失败,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                    }
                }
            });
        },
        /**
         * 监听低功耗蓝牙连接状态的改变事件。包括开发者主动连接或断开连接,设备丢失,连接异常断开等等
         */
        onBLEConnectionStateChange() {
            uni.onBLEConnectionStateChange(res => {
                // 该方法回调中可以用于处理连接意外断开等异常情况
                console.log(`蓝牙连接状态 -------------------------->`);
                console.log(JSON.stringify(res));
                if (!res.connected) {
                    if(this.isStop) return ;
                    console.log('断开低功耗蓝牙成功:');
                    this.$set(this.disabled, 1, false);
                    this.$set(this.disabled, 3, true);
                    this.$set(this.disabled, 4, true);
                    this.$set(this.disabled, 5, true);
                    this.$set(this.disabled, 6, true);
                    this.$set(this.disabled, 7, true);
                    this.$set(this.disabled, 8, true);
                    this.$set(this.disabled, 9, true);
                    this.searchLoad = false;
                    this.equipment = [];
                    this.servicesData = [];
                    this.characteristicsData = [];
                    this.valueChangeData = {};
                    toast('已经断开当前蓝牙连接');
                }
            });
        },
        /**
         * 读取低功耗蓝牙设备的特征值的二进制数据值。注意:必须设备的特征值支持 read 才可以成功调用
         */
        readBLECharacteristicValue() {
            let deviceId = this.equipment[0].deviceId;
            let serviceId = this.servicesData[0].uuid;
            let characteristicId = this.characteristicsData[0].uuid;
            console.log(deviceId);
            console.log(serviceId);
            console.log(characteristicId);
            uni.readBLECharacteristicValue({
                // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
                deviceId,
                // 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
                serviceId,
                // 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取
                characteristicId,
                success: res => {
                    console.log('读取设备数据值成功');
                    console.log(JSON.stringify(res));
                    this.notifyBLECharacteristicValueChange();
                },
                fail(e) {
                    console.log('读取设备数据值失败,错误码:' + e.errCode);
                    if (e.errCode !== 0) {
                        initTypes(e.errCode);
                    }
                }
            });
            this.onBLECharacteristicValueChange();
        },
        /**
         * 监听低功耗蓝牙设备的特征值变化事件。必须先启用 notifyBLECharacteristicValueChange 接口才能接收到设备推送的 notification。
         */
        onBLECharacteristicValueChange() {
            // 必须在这里的回调才能获取
            uni.onBLECharacteristicValueChange(characteristic => {
                console.log('监听低功耗蓝牙设备的特征值变化事件成功');
                console.log(JSON.stringify(characteristic));
                this.valueChangeData = characteristic;
            });
        },
        /**
         * 订阅操作成功后需要设备主动更新特征值的 value,才会触发 uni.onBLECharacteristicValueChange 回调。
         */
        notifyBLECharacteristicValueChange() {
            let deviceId = this.equipment[0].deviceId;
            let serviceId = this.servicesData[0].uuid;
            let characteristicId = this.characteristicsData[0].uuid;
            let notify = this.characteristicsData[0].properties.notify;
            console.log(deviceId);
            console.log(serviceId);
            console.log(characteristicId);
            console.log(notify);
            uni.notifyBLECharacteristicValueChange({
                state: true, // 启用 notify 功能
                // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
                deviceId,
                // 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
                serviceId,
                // 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取
                characteristicId,
                success(res) {
                    console.log('notifyBLECharacteristicValueChange success:' + res.errMsg);
                    console.log(JSON.stringify(res));
                }
            });
        },
        /**
         *     断开蓝牙模块
         */
        closeBluetoothAdapter(OBJECT) {
            uni.closeBluetoothAdapter({
                success: res => {
                    console.log('断开蓝牙模块成功');
                    this.isStop = true ;
                    this.$set(this.disabled, 0, false);
                    this.$set(this.disabled, 1, true);
                    this.$set(this.disabled, 2, true);
                    this.$set(this.disabled, 3, true);
                    this.$set(this.disabled, 4, true);
                    this.$set(this.disabled, 5, true);
                    this.$set(this.disabled, 6, true);
                    this.$set(this.disabled, 7, true);
                    this.$set(this.disabled, 8, true);
                    this.$set(this.disabled, 9, true);
                    this.$set(this.disabled, 10, true);
                    this.equipment = [];
                    this.servicesData = [];
                    this.characteristicsData = [];
                    this.valueChangeData = {};
                    this.adapterState = [];
                    this.searchLoad =false;
                    toast('断开蓝牙模块');
                }
            });
                })
            }
        }
    }
};
/**
 * 判断初始化蓝牙状态
 */
function initTypes(code, errMsg) {
    switch (code) {
        case 10000:
            toast('未初始化蓝牙适配器');
            break;
        case 10001:
            toast('未检测到蓝牙,请打开蓝牙重试!');
            break;
        case 10002:
            toast('没有找到指定设备');
            break;
        case 10003:
            toast('连接失败');
            break;
        case 10004:
            toast('没有找到指定服务');
            break;
        case 10005:
            toast('没有找到指定特征值');
            break;
        case 10006:
            toast('当前连接已断开');
            break;
        case 10007:
            toast('当前特征值不支持此操作');
            break;
        case 10008:
            toast('其余所有系统上报的异常');
            break;
        case 10009:
            toast('Android 系统特有,系统版本低于 4.3 不支持 BLE');
            break;
        default:
            toast(errMsg);
    }
}
/**
 * 弹出框封装
 */
function toast(content, showCancel = false) {
    uni.showModal({
        title: '提示',
        content,
        showCancel
    });
}
</script>
<style>
.uni-title {
    /* width: 100%; */
    /* height: 80rpx; */
    text-align: center;
}
.uni-mask {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    width: 100%;
    background: rgba(0, 0, 0, 0.6);
    padding: 0 30rpx;
    box-sizing: border-box;
}
.uni-scroll_box {
    height: 70%;
    background: #fff;
    border-radius: 20rpx;
}
.uni-list-box {
    margin: 0 20rpx;
    padding: 15rpx 0;
    border-bottom: 1px #f5f5f5 solid;
    box-sizing: border-box;
}
.uni-list:last-child {
    border: none;
}
.uni-list_name {
    font-size: 30rpx;
    color: #333;
}
.uni-list_item {
    font-size: 24rpx;
    color: #555;
    line-height: 1.5;
}
.uni-success_box {
    position: absolute;
    left: 0;
    bottom: 0;
    min-height: 100rpx;
    width: 100%;
    background: #fff;
    box-sizing: border-box;
    border-top: 1px #eee solid;
}
.uni-success_sub {
    /* width: 100%%; */
    height: 100rpx;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 30rpx;
}
.uni-close_button {
    padding: 0 20rpx;
    height: 60rpx;
    line-height: 60rpx;
    background: #ce3c39;
    color: #ffffff;
    border-radius: 10rpx;
}
.uni-success_content {
    height: 600rpx;
    margin: 30rpx;
    margin-top: 0;
    border: 1px #eee solid;
    padding: 30rpx;
}
.uni-content_list {
    padding-bottom: 10rpx;
    border-bottom: 1px #f5f5f5 solid;
}
.uni-tips {
    text-align: center;
    font-size: 24rpx;
    color: #666;
}
<style lang="scss">
    .bluetoothItem {
        width: 100%;
        height: 100%;
        .bluetoothList {
            display: flex;
            flex-direction: column;
            padding: 20rpx;
            border-bottom: 1rpx solid #BEBEBE;
            font-size: 18rpx;
        }
    }
</style>
store/actionsType.js
New file
@@ -0,0 +1,11 @@
//bluetooth
const SET_INFODATA = "SET_INFODATA";
const SET_CONNECTBLEDATA = "SET_CONNECTBLEDATA";
const SET_CONNECTPRINTBLE = "SET_CONNECTPRINTBLE"
export {
    SET_INFODATA,
    SET_CONNECTBLEDATA,
    SET_CONNECTPRINTBLE
}
store/gettersType.js
New file
@@ -0,0 +1,13 @@
//bluetooth
const GET_CONNECTBLEDATA = "GET_CONNECTBLEDATA";
const GET_INFODATA = "GET_INFODATA";
const GET_CONNECTRINTDATA = "GET_CONNECTRINTDATA";
export{
    GET_CONNECTBLEDATA,
    GET_INFODATA,
    GET_CONNECTRINTDATA
}
store/index.js
New file
@@ -0,0 +1,15 @@
import Vue from 'vue';
import Vuex from 'vuex';
//vuex模块引入
import Bluetooth from './modules/bluetooth.js';  //存储蓝牙设备信息
//vue使用vuex;
Vue.use(Vuex);
export default new Vuex.Store({
    // 开启严格模式,仅开发模式下启用,发布环境下取消
    strict: true,
    modules:{
       Bluetooth
    }
})
store/modules/bluetooth.js
New file
@@ -0,0 +1,54 @@
import {SET_INFODATA,SET_CONNECTBLEDATA,SET_CONNECTPRINTBLE} from '@/store/actionsType.js';
import {GET_CONNECTBLEDATA,GET_INFODATA,GET_CONNECTRINTDATA} from '@/store/gettersType.js';
const state = {
    BLEInfoData:[],  //存储蓝牙列表
    connectBLEData:[], //存储已链接蓝牙列表
    connectPrintBLE:{}   //存储已连接打印机蓝牙,存入缓存
}
const mutations = {
    [SET_INFODATA](state,value){
        if(value instanceof Array){
            state.BLEInfoData = value;
        }else{
            state.BLEInfoData.push(value);
        }
    },
    [SET_CONNECTBLEDATA](state,value){
        if(value instanceof Array){
            state.connectBLEData = value;
        }else{
            state.connectBLEData.push(value);
        }
    },
    [SET_CONNECTPRINTBLE](state,value){
        state.connectPrintBLE = value;
    }
}
const actions = {
    [SET_INFODATA]({commit},value){
        commit(SET_INFODATA,value);
    },
    [SET_CONNECTBLEDATA]({commit},value){
        commit(SET_CONNECTBLEDATA,value);
    },
    [SET_CONNECTPRINTBLE]({commit},value){
        commit(SET_CONNECTPRINTBLE,value);
    }
}
const getters = {
    [GET_CONNECTBLEDATA]:(state)=>{
        return state.connectBLEData;
    },
    [GET_INFODATA]:(state)=>{
        return state.BLEInfoData;
    },
    [GET_CONNECTRINTDATA]:(state)=>{
        return state.connectPrintBLE
    }
}
export default{
    state,
    getters,
    actions,
    mutations
};