//创建蓝牙链接
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);
}
4 个回复
3***@qq.com (作者) - 移动开发的产品经理
补充问题:建立与蓝牙的连接调用不了,原因是API是抽象类,NJS不知道如何去实现抽象类的回调。
9***@qq.com
请问楼主找到实现抽象类回调的方法了吗,求指教
Neil_HL
目前Native.js确实无法调用抽象类。
如果必须调用如gatt抽象类的相关代码,那么可以使用插件扩展或封装gatt逻辑使用Native.js调用,然后离线打包生成apk。
1***@qq.com
这个问题最后解决了吗?请指教