Spanish Como puedo resolver el tipo de respuesta que obtengo de javaobject

pcicom

Member
Licensed User
Longtime User
Hola, saludos

Como puedo resolver el tipo de respuesta que obtengo al llamar por medio de JavaObject un procedimiento de un SDK

Mi codigo es



B4X:
Dim scan As JavaObject
'************************************** 
'    scan.InitializeStatic("android.device.ScanManager")
scan.InitializeNewInstance("android.device.ScanManager",Null)
  
Dim joOpen As JavaObject
Dim lOpen As Boolean
joOpen = scan.RunMethodJO("openScanner",Null)
lOpen = joOpen.as(Boolean)

Al compilar obtengo el siguiente error que indica que el tipo de dato recibido es distinto al que uso.

java.lang.IllegalArgumentException: Expected receiver of type android.device.ScanManager, but got java.lang.Class<android.device.ScanManager>


Gracias...
 

TILogistic

Expert
Licensed User
Longtime User
que obtiene como resultado esto:

powerOn = scan.RunMethodJO("getScannerState",Null)

observe el ejemplo java.

además de utilizar los tipos declarados en los import:
1656964430755.png


Java:
    private void initScan() {
        mScanManager = new ScanManager();
        boolean powerOn = mScanManager.getScannerState();
        if (!powerOn) {
            powerOn = mScanManager.openScanner();
            if (!powerOn) {
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setMessage("Scanner cannot be turned on!");
                builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                AlertDialog mAlertDialog = builder.create();
                mAlertDialog.show();
            }
        }
        initBarcodeParameters();
    }

recuerde habilitar antes de utilizar.
 
Top