On Fri, Jun 30, 2017 at 04:51:03AM +0300, Lubomir I. Ivanov wrote:
> On 30 June 2017 at 03:58, Dirk Hohndel <[email protected]> wrote:
> > So how the heck do I get an int return value out of a JNI call???
> >
> > I've tried quite a few different variations of this
> >
> >                         // returns a BluetoothDevice
> >                         QAndroidJniObject 
> > dev=iterator.callObjectMethod("next","()Ljava/lang/Object;");
> >                         if 
> > (checkException("Iterator<BluetoothDevice>.next()", &dev)) {
> >                                 continue;
> >                         }
> >                         QAndroidJniObject typeObj = 
> > dev.callObjectMethod("getType", "()I");
> >
> > getType() returns an int. I want to check if this is an LE-only device.
> >
> 
> untested:
> 
> http://doc.qt.io/qt-5/qandroidjniobject.html#callMethod
> 
> jint type_jni = dev.callMethod<jint>("getType");
> int type_c = (int)type_jni;
> 
> ^
> https://android.googlesource.com/platform/libnativehelper/+/master/include/nativehelper/jni.h#35

Yup, that did the trip.

Thanks, Lubomir.

Linus, here's what I get when trying to connect to the Perdix from
Android:

06-29 21:06:19.846 21696 21941 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: 
getDetectedDeviceAddress "LE:E4:3B:31:49:F5:D0"
06-29 21:06:19.846 21696 21941 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: 
getDeviceDescriptorVendor "Shearwater"
06-29 21:06:19.847 21696 21941 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: 
getDeviceDescriptorProduct "Perdix"
06-29 21:06:19.847 21696 21941 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: "167.298: 
DCDownloadThread started for LE:E4:3B:31:49:F5:D0"
06-29 21:06:19.847 21696 22485 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: Starting 
download from  BT
06-29 21:06:19.847 21696 22485 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: Starting 
the thread 0
06-29 21:06:19.857 21696 22485 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: Creating 
Android Central/Client support for BTLE
06-29 21:06:19.858 21696 22485 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: 
qt_ble_open( E4:3B:31:49:F5:D0 )
06-29 21:06:19.861 21696 22485 D BluetoothGatt: connect() - device: 
E4:3B:31:49:F5:D0, auto: false
06-29 21:06:19.861 21696 22485 D BluetoothGatt: registerApp()
06-29 21:06:19.862 21696 22485 D BluetoothGatt: registerApp() - 
UUID=1c2df551-a6b5-4f6a-a655-4765dca617da
06-29 21:06:19.863 23293 23360 D BtGatt.GattService: registerClient() - 
UUID=1c2df551-a6b5-4f6a-a655-4765dca617da
06-29 21:06:19.863 23293 23315 D BtGatt.GattService: onClientRegistered() - 
UUID=1c2df551-a6b5-4f6a-a655-4765dca617da, clientIf=23
06-29 21:06:19.863 21696 22485 W QtBluetoothGatt: Using Android v23 
BluetoothDevice.connectGatt()
06-29 21:06:19.864 21696 21943 D BluetoothGatt: onClientRegistered() - status=0 
clientIf=23
06-29 21:06:19.864 23293 23304 D BtGatt.GattService: clientConnect() - 
address=E4:3B:31:49:F5:D0, isDirect=true
06-29 21:06:19.865 23293 23315 D bt_btif_config: btif_get_address_type: Device 
[e4:3b:31:49:f5:d0] address type 1
06-29 21:06:19.865 23293 23315 D bt_btif_config: btif_get_device_type: Device 
[e4:3b:31:49:f5:d0] type 2
06-29 21:06:19.865 23293 23328 E bt_btif : Connection open failure
06-29 21:06:19.865 23293 23315 D BtGatt.GattService: onConnected() - 
clientIf=23, connId=0, address=E4:3B:31:49:F5:D0
06-29 21:06:19.865 21696 21708 D BluetoothGatt: onClientConnectionState() - 
status=133 clientIf=23 device=E4:3B:31:49:F5:D0
06-29 21:06:19.865 21696 21708 D BluetoothGatt: close()
06-29 21:06:19.865 21696 21708 D BluetoothGatt: unregisterApp() - mClientIf=23
06-29 21:06:19.866 23293 23306 D BtGatt.GattService: unregisterClient() - 
clientIf=23
06-29 21:06:19.866 21696 21708 W QtBluetoothGatt: Unhandled error code on 
connectionStateChanged: 133 0
06-29 21:06:19.874 21696 22485 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: Connection 
updated: error: QLowEnergyController::Error(133) oldState: 
QLowEnergyController::ControllerState(ConnectingState) newState: 
QLowEnergyController::ControllerState(UnconnectedState)
06-29 21:06:19.965 21696 22485 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: failed to 
connect to the controller  E4:3B:31:49:F5:D0 with error "Error occurred trying 
to connect to remote device."
06-29 21:06:19.965 21696 22485 D 
/data/newandroid/subsurface/core/libdivecomputer.c: INFO: dc_deveice_open error 
value of -6
06-29 21:06:19.965 21696 22485 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: Finishing 
the thread Insufficient privileges to open the device %s %s (%s) dives 
downloaded 0
06-29 21:06:19.966 21696 21941 D 
/data/newandroid/subsurface/qt-models/messagehandlermodel.cpp: INFO: "167.417: 
DCDownloadThread finished"
06-29 21:06:20.144  6361  6502 D BluetoothAdapter: isLeEnabled(): ON


Any ideas / suggestions?

/D
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to