小林_孟
小林_孟
  • 发布:2016-08-13 17:53
  • 更新:2017-08-03 15:22
  • 阅读:1498

谁知道hbuilder怎么反射抽象类

分类:Native.js

蓝牙抽象类无法反射BluetoothGattCallback

2016-08-13 17:53 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

请详细描述一下问题,另外贴一下相关问题代码。

  • 小林_孟 (作者)

    源码我贴出来了,我用你们的反射方法去反射蓝牙相关类的操作,但无法回调到函数和抽象类,请问这个怎么解决

    2016-08-18 09:18

小林_孟

小林_孟 (作者)

function openBluetooth(){  

        if(!BAdapter.isEnabled()) {  
            BAdapter.enable();  
        }         
}  

function closeBluetooth(){  

        if(BAdapter.isEnabled()) {  
            BAdapter.disable();  
        }         
}  
function bluetooth_list(){  
    var table = document.body.querySelector('.mui-table-view');  
      var LeScanCallback  = plus.android.importClass("android.bluetooth.BluetoothAdapter.LeScanCallback",{  
       onLeScan : function(device, rssi, scanRecord){  
            var li = document.createElement('li');  
            li.className = 'mui-table-view-cell';  
            li.innerHTML =device.getAddress();  
            table.insertBefore(li, table.firstChild);  
            console.log(device.getAddress());   
       }  
       });  
       plus.android.importClass(LeScanCallback);  
       BAdapter.startLeScan(mLeScanCallback);  
       /*  
      var lists = BAdapter.getBondedDevices();  
        plus.android.importClass(lists);  
       var iterator = lists.iterator();  
       plus.android.importClass(iterator);  
        while (iterator.hasNext()) {  
        var d = iterator.next();  
        plus.android.importClass(d);  
            console.log(d.getAddress());  
            var li = document.createElement('li');  
            li.className = 'mui-table-view-cell';  
            li.innerHTML =d.getAddress();  
            table.insertBefore(li, table.firstChild)  
          }  
          */  
    }          

function connectBluetooth(){  
      var addres_mac = "00:0E:0E:13:0E:2D";  
    Bdevice =   BAdapter.getRemoteDevice(addres_mac);  
            plus.android.importClass(Bdevice);  
    Callback = plus.android.importClass("android.bluetooth.BluetoothGattCallback",{  
    onConnectionStateChange : function(gatt, status,  
            newState){  
                console.log("连接成功");   
                BGatt.discoverServices();  
                if (status == 0) {  
                    BGatt.discoverServices();  
                    plus.nativeUI.toast("连接成功");  
                }  
            }  

    },{  
    onServicesDiscovered :function(gatt,status){  
        Bservice= gatt.getService(Suuid);  
        plus.android.importClass(Bservice);   
        Wcharacteristic = Bservice.getCharacteristic(Wuuid);  
        plus.android.importClass(Wcharacteristic);  
        Rcharacteristic= Bservice.getCharacteristic(Ruuid);  
        BGatt.readCharacteristic(Rcharacteristic);  
        var a = new array();  
        a[0] = 0x02;  
        a[1] = 0x00;  
        descriptor = reccharacteristic.getDescriptors().get(0);  
        plus.android.importClass(descriptor);  
                if (descriptor != null) {  
                    descriptor  
                            .setValue(a);  
                    if (BGatt.writeDescriptor(descriptor)){  
                        BGatt.setCharacteristicNotification(  
                                Rcharacteristic, true);  
                                console.log("注册成功");   
                    }  
                }  
    }  
    },{  
        onCharacteristicRead :function(gatt,  
            characteristic,status){  
            var data = characteristic.getValue();  
            plus.nativeUI.toast(data);  
            console.log("读成功");   
        }  
    },{  
        onCharacteristicChanged :function(gatt,characteristic){  
            var data = characteristic.getValue();  
            plus.nativeUI.toast(data);  
            console.log("读成功");   
        }  
    });  

    plus.android.importClass(Callback);  
    BGatt = Bdevice.connectGatt(main,  
                    false, Callback);  
    plus.android.importClass(BGatt);              
}  

function sendTxt(){  
    var txt=document.getElementById("send-text").value;  
    Wcharacteristic.setValue(txt);  
    if(BGatt.readCharacteristic(Wcharacteristic)){  
        plus.nativeUI.toast("发送成功");  
    }  
}
  • FelixZYY

    这份代码不能用吧。BluetoothGattCallback是抽象类,不能实例化。而且js的array传到java层面会编程int[]

    2016-10-07 22:24

9***@qq.com

9***@qq.com

楼主找到方法了吗,求解

该问题目前已经被锁定, 无法添加新回复