3***@qq.com
3***@qq.com
  • 发布:2017-06-19 12:51
  • 更新:2018-08-02 17:44
  • 阅读:1493

NJS BLE4怎么才能实现ANDROID API的抽象类回调函数的实现

分类:Native.js

//创建蓝牙链接
function print(mac_address) {
//获取android应用Activity对象
main = plus.android.runtimeMainActivity();
//蓝牙适配器 成功的
BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
UUID = plus.android.importClass("java.util.UUID");
//生成uuid
uuid = UUID.fromString("0000fff1-0000-1000-8000-00805f9b34fb");
//本地蓝牙适配器 成功的
BAdapter = BluetoothAdapter.getDefaultAdapter();
// 设置远程蓝牙设备
device = BAdapter.getRemoteDevice(mac_address);
console.log(mac_address);
plus.android.importClass(device);

 var Callback = {  
           'onConnectionStateChange':function(gatt,status,newState){  
         console.log('当连接上设备或者失去连接时会回调该函数');  
            },  
           'onServicesDiscovered':function(gatt,status) {  
            console.log('当设备是否找到服务时,会回调该函数');  
            },  
           'onCharacteristicRead':function(gatt,characteristic,status){  
              console.log('当读取设备时会回调该函数  ');  
            },  
           'onDescriptorWrite':function(gatt,descriptor,status){  
             console.log('当向设备Descriptor中写数据时,会回调该函数');  
            },  
           'onCharacteristicChanged':function(gatt,characteristic) {   
             console.log('当设备发出通知时会调用到该接口 ');  
            },  
           'onReadRemoteRssi':function( gatt, rssi, status){  
             console.log('onReadRemoteRssi');  
            },  
           'onCharacteristicWrite':function(gatt,characteristic,status){  
             console.log('当向Characteristic写数据时会回调该函数');  
            }  
};  

//调用系统链接回调类   此处不成功  

var BluetoothGattCallback = plus.android.importClass("android.bluetooth.BluetoothGattCallback",Callback);
//plus.android.importClass(BluetoothGattCallback);
console.log(BluetoothGattCallback);
for( a in BluetoothGattCallback){
console.log(a);
}
//连接设备
var mBluetoothGatt= device.connectGatt(plus.android.runtimeMainActivity(),false, BluetoothGattCallback);
//var GattCallback =new BluetoothGattCallback(Callback)
//plus.android.importClass(GattCallback);
// var mBluetoothGatt= device.connectGatt(plus.android.runtimeMainActivity(),false, GattCallback);
}

2017-06-19 12:51 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com (作者) - 移动开发的产品经理

补充问题:建立与蓝牙的连接调用不了,原因是API是抽象类,NJS不知道如何去实现抽象类的回调。

9***@qq.com

9***@qq.com

请问楼主找到实现抽象类回调的方法了吗,求指教

Neil_HL

Neil_HL

目前Native.js确实无法调用抽象类。
如果必须调用如gatt抽象类的相关代码,那么可以使用插件扩展或封装gatt逻辑使用Native.js调用,然后离线打包生成apk。

1***@qq.com

1***@qq.com

这个问题最后解决了吗?请指教

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