Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/6062824/tecnologia.css
Portuguese
Pagetitle
Classe TMobile
Classe TMobile

tMobile é uma classe utilitária que agrupa métodos focados na plataforma móvel TOTVS | FatClient Embarcado e promove as integrações com aplicativos ou com o hardware do dispositivo móvel.

Hierarquia

  • TMobile

Construtores

Inclusão de trecho
Classe TMobile - Construtores
Classe TMobile - Construtores
nopaneltrue

Métodos

Inclusão de trecho
Classe TMobile - Métodos
Classe TMobile - Métodos
nopaneltrue

Observações

  • A plataforma móvel TOTVS | FatClient Embarcado para Android está na versão Beta (para testes e avaliações) e encontra-se na loja Google Play Store.
  • Atualmente a classe TMobile está disponível somente para dispositivos Android.

Exemplos

Bloco de código
themeEclipse
languagecpp
titleExemplo 1
linenumberstrue
collapsefalse
#include "totvs.ch"

Classe: TMobile

Mobile é uma classe utilitária que reúne diversos métodos focados na plataforma móvel TOTVS | FatClient Embarcado que atualmente está disponível para Android.

 

TMobile

 

Expandir
titleConstrutores

New

Método construtor da classe.

 

Informações
iconfalse
titleSintaxe

 TMobile(): New () --> oObjeto

 

Retorno

oObjeto

  • Retorna o objeto criado.

 

Bloco de código
themeEclipse
titleExemplo
oMbl := TMobile():New()

...

titleMétodos

...

titleBarcode

Efetua a leitura de código de barras

Informações
iconfalse
titleSintaxe

TMobile(): Barcode ( < cBarType > ) --> aResult

 

Parâmetros
NomeTipoDescriçãoObrigatórioReferência
cBarTypeCaracterRestringe os tipos de códigos de barras que poderão ser lidos (consulte a área de observações abaixo para conhecer os valores possíveis para este parâmetro).  

 

Retorno
aResult
  • Retorna um vetor de duas posições do tipo caractere.
  • A primeira posição do vetor contém o valor decodificado do código de barras.
  • A segunda posição do vetor contém o nome do tipo de código de barras lido (por exemplo: UPC_A, EAN_8, QR_CODE, etc).
  • Se o usuário pressionar o botão voltar do dispositivo, nenhum código será lido e as duas posições do vetor estarão vazias.
Observações
  • A leitura de código de barras é realizada via integração com o aplicativo gratuito Barcode Scanner disponível para download no Google Play Store. Caso o aplicativo não esteja previamente instalado, na primeira chamada ao método TMobile():Barcode(), o usuário será redirecionado para a página específica do aplicativo Barcode Scanner no Google Play Store para realizar a instalação. Assim que o dispositivo exibir a mensagem de que a instalação foi bem sucedida, bastará ao usuário pressionar o botão voltar do dispositivo para que a integração continue, isto é, o aplicativo Barcode Scanner será aberto e, após a leitura do código de barras, o valor será retornado ao programa AdvPL.
  • Utilize um dos tipos abaixo no parâmetro cBarType para restringir os tipos de códigos de barras que poderão ser lidos:
Tipo de código de barrasRestrição de decodificação
PRODUCT_MODEDecodifica somente códigos de barras UPC e EAN. Estes são os tipos mais usados para definir as características e os preços de produtos.
ONE_D_MODESomente código de barras de uma dimensão.
QR_CODE_MODESomente código de barras QR Code (código de duas dimensões).
DATA_MATRIX_MODESomente código de barras Data Matrix (código de duas dimensões).
AZTEC_MODESomente código de barras Aztec (código de duas dimensões).
PDF417_MODESomente código de barras PDF417 (código de duas dimensões).
Bloco de código
titleExemplo 1
aBarResult:= oMbl:BarCode("PRODUCT_MODE")

...

titleExemplo 2
linenumberstrue

...


#define PRODUCT_MODE		"PRODUCT_MODE"     // Decode only UPC and EAN barcodes. This is the right choice for shopping apps which get prices, reviews, etc. for products.
#define ONE_D_MODE			"ONE_D_MODE"       // Decode only 1D barcodes.
#define QR_CODE_MODE		"QR_CODE_MODE"     // Decode only QR codes.
#define DATA_MATRIX_MODE	"DATA_MATRIX_MODE" // Decode only Data Matrix codes.
#define AZTEC_MODE			"AZTEC_MODE"       // Decode only Aztec.
#define PDF417_MODE			"PDF417_MODE"      // Decode only PDF417.

Function u_tMobile()
	Local calibri18Black := TFont():New("Calibri",,018,,.T.,,,,,.F.,.F.)

	DEFINE MSDIALOG oDlg TITLE "Testes com TMobile" FROM 000, 000  TO 115, 700 COLORS 0, 16777215 PIXEL

    @ 005, 040 SAY oSay1 PROMPT "Integrações disponíveis na classe tMobile para a plataforma TOTVS | FatClient Embarcado" SIZE 260, 016 OF oDlg FONT calibri18Black COLORS 0, 16777215 PIXEL
    
    @ 035, 007 BUTTON oButton1 PROMPT "Ler Código de Barras" SIZE 100, 012 OF oDlg ACTION {|| u_tmbl1() } PIXEL
    @ 035, 130 BUTTON oButton2 PROMPT "Listar Dispositivos Bluetooth Pareados" SIZE 100, 012 OF oDlg ACTION {|| u_tmbl2() } PIXEL
    @ 035, 245 BUTTON oButton2 PROMPT "

...

Capturar Foto" SIZE 100, 012 OF oDlg ACTION {|| u_tmbl3() } PIXEL
    
    ACTIVATE DIALOG oDlg CENTERED
Return

Function u_tmbl1()
	LOCAL oMbl
	LOCAL cBarType
	LOCAL aBarResult

...


	oMbl:= TMobile():New()

	// Especificar aqui um tipo de código de barras para limitar a leitura. 
	//cBarType:= PRODUCT_MODE;
	cBarType:= "";
	
	aBarResult:= oMbl:BarCode(

...

)
	
	If aBarResult[1] = ""
		sMsg := "Nenhum código de barras foi lido."
	Else
		sMsg := "Código de barras lido:" + chr(13) + chr(13) + "Código: " + aBarResult[1] + chr(13) + "Formato: " + aBarResult[2]
	EndIf
		
	MsgInfo(sMsg)
Return

...

titleGetPairedBluetoothDevices

Obtém uma lista contendo nomes e endereços dos dispositivos Bluetooth pareados

Informações
iconfalse
titleSintaxe

TMobile(): GetPairedBluetoothDevices( ) --> aDevicesResult

 

Retorno
aDevicesResult
  • Retorna um vetor multidimensional contendo nomes e endereços dos dispositivos Bluetooth pareados.
  • A primeira posição da segunda dimensão da matriz é do tipo caractere e contém o nome de um dispositivo Bluetooth pareado.
  • A segunda posição da segunda dimensão da matriz é do tipo caractere e contém o endereço no formato 00:00:00:00:00:00 que é único e exclusivo para cada dispositivo.
  • As posições estarão vazias caso nenhum dispositivo esteja pareado ou a interface Bluetooth esteja disativada.

 

Bloco de código
titleExemplo 1
aDevicesResult:= oMbl:GetPairedBluetoothDevices()

...

titleExemplo 2
linenumberstrue

...



Function u_tmbl2()
	LOCAL oMbl
	LOCAL aDevicesResult
	Local i

...


	oMbl:= TMobile():New()

	aDevicesResult:= oMbl:GetPairedBluetoothDevices()
	
	sMsg := ""
	For i := 1 to len(aDevicesResult)
		sMsg := sMsg + "Nome: " + aDevicesResult[i][1] + chr(13)
		sMsg := sMsg + "Endereço: " + aDevicesResult[i][2] + chr(13) + chr(13)
	Next i
	
	If sMsg = ""
		sMsg := "Nenhum dispositivo pareado ou interface Bluetooth desligada."
	Else
		sMsg := "Dispositivos Bluetooth Pareados:" + chr(13) + chr(13) + sMsg
	EndIf
	
	MsgInfo(sMsg)	
Return

Function u_tmbl3()
	Local cFilePath
	Local cMsg
	
	DEFINE DIALOG oDlg TITLE "Exemplo TMobile TakePicture" FROM 180,180 TO 610,700 PIXEL

	oMbl:= TMobile():New()
	cFilePath:= oMbl:TakePicture()
	
	if (cFilePath = "")
	  cMsg := "Nenhuma imagem foi gravada."
	else
      cMsg := "Arquivo: " + cFilePath
    endif   
	
	// Por ser o Android um sistema baseado no linux e para indicar que o arquivo encontra-se no
	// lado do client, é adicionada uma letra de unidade de disco fictícia.
	cFilePath:= "C:" + cFilePath
	
	oTBitmap1 := TBitmap():New(01,01,260,184,,cFilePath,.F.,oDlg,,,.F.,.T.,,,.F.,,.T.,,.F.)
    oTBitmap1:lAutoSize := .F.
    
    oSay:= TSay():New(187, 02, {||cMsg},oDlg,,,,,,.T.,CLR_RED,CLR_WHITE,200,10)
    
    oTButton1 := TButton():New( 200, 110, "Fechar", oDlg, {||oDlg:End()},40,10,,,.F.,.T.,.F.,,.F.,,,.F. )                         
    
    ACTIVATE DIALOG oDlg CENTERED
Return

Abrangência

Versão Beta.