蓝牙抽象类无法反射BluetoothGattCallback
![小林_孟](https://img-cdn-tc.dcloud.net.cn/account/identicon/971de86025f8ed28c189e24ff194a690.png)
小林_孟
- 发布:2016-08-13 17:53
- 更新:2017-08-03 15:22
- 阅读:1498
谁知道hbuilder怎么反射抽象类
分类:Native.js
![小林_孟](https://img-cdn-tc.dcloud.net.cn/account/identicon/971de86025f8ed28c189e24ff194a690.png)
小林_孟 (作者)
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("发送成功");
}
}
小林_孟 (作者)
源码我贴出来了,我用你们的反射方法去反射蓝牙相关类的操作,但无法回调到函数和抽象类,请问这个怎么解决
2016-08-18 09:18