PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Collecting IMEI and Phone Number
Collecting IMEI and Phone Number
Débuté par JP, 12 mai 2012 02:22 - 8 réponses
Membre enregistré
1 message
Posté le 12 mai 2012 - 02:22
Hello All:

I'm trying out the Express version of WinDev Mobile and don't see in the documentaion that WinDev Mobile can collect the IMEI and phone number so I can store the information in a MySql database after pressing "Send". Anyone here can say this software will do that?

Bascially I want to display those values in a label when the APP loads. Later I want to send the values to a DB.

I'm unsure what compoents might come from the registered version versus teh express version.

Best Regards

Jim
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 15 mai 2014 - 14:19
PROCEDURE GetImei()

numImei is string = ""

//Serie do equipamento
IF numImei = "" AND InSimulatorMode() = False THEN
numImei = SysSerialNum()
END
IF numImei = "" AND InSimulatorMode() = False THEN
numImei = SysIMEI("Cellular Line")
END
IF numImei = "" AND InSimulatorMode() = False THEN
numImei = SysIMEI("Tablet")
END


RESULT(numImei)
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 15 mai 2014 - 14:19
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
import android.provider.Settings.Secure;

public static String CelularGetDeviceId()
{

TelephonyManager tm;
tm = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String num = tm.getDeviceId();

if (num == ""){
num = "Celular sem chip instalado";
}

else if (num == null){
num = "Celular sem chip instalado";
}

return(num);

}
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 15 mai 2014 - 14:20
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
import android.provider.Settings.Secure;

//Android Manisfest
//<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
//Requires READ_PHONE_STATE uses-permission

public static String CelularDadosGerais()
{

TelephonyManager tm;
tm = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);

//SimCard
int simState = tm.getSimState();
String SimStateStatus = "";
switch (simState)
{
case (TelephonyManager.SIM_STATE_ABSENT):
SimStateStatus = "SimState: ABSENT";
break;
case (TelephonyManager.SIM_STATE_NETWORK_LOCKED):
SimStateStatus = "SimState: NETWORK_LOCKED";
break;
case (TelephonyManager.SIM_STATE_PIN_REQUIRED):
SimStateStatus = "SimState: PIN_REQUIRED";
break;
case (TelephonyManager.SIM_STATE_PUK_REQUIRED):
SimStateStatus = "SimState: PUK_REQUIRED";
break;
case (TelephonyManager.SIM_STATE_UNKNOWN):
SimStateStatus = "SimState: UNKNOWN";
break;
case (TelephonyManager.SIM_STATE_READY):
SimStateStatus = "SimState: READY";
break;
}

//Numero da Linha 1
String NumCelular1 = tm.getLine1Number();

//Numero da Linha 2
//String NumCelular2 = tm.getLine2Number();

//Retorna o ID único dispositivo, por exemplo, o IMEI para o GSM eo MEID ou ESN para celulares CDMA.
String IMEI = tm.getDeviceId();

//Get SIM Serial Number - Retorna o número de série do SIM, se for o caso.
String SIMSerial = tm.getSimSerialNumber();

//Retorna a identificação de assinante original, por exemplo, o IMSI para um telefone GSM.
String SubscriberId = tm.getSubscriberId();

//Get SIM Country ISO Code - Retorna o código do país ISO equivalente para o código de país do fornecedor SIM.
String SIMCountryISO = tm.getSimCountryIso();

//Retorna o número da versão do software para o dispositivo, por exemplo, o IMEI / SV para telefones GSM.
String SoftwareVersion = tm.getDeviceSoftwareVersion();

//Get Network Country ISO Code - Retorna o código de país ISO equivalente do MCC do atual operador registado (Country Code Mobile).
String NetworkCountryISO = tm.getNetworkCountryIso();

//Retorna o nome numérico (MCC + MNC) do atual operador registado.
String NetworkOperator = tm.getNetworkOperator();

//Retorna o nome alfabética do atual operador registado
String NetworkOperatorName = tm.getNetworkOperatorName();

//Retorna o MCC + MNC (código do país + código de rede móvel celular) do provedor do SIM.
String Operator = tm.getSimOperator();

//Retorna o nome do provedor de serviço (SPN).
String OperatorName = tm.getSimOperatorName();

//Recupera o identificador alfabético associado com o número de correio de voz.
String VoiceMailAlphaTag = tm.getVoiceMailAlphaTag();

//Retorna o número de correio de voz.
String VoiceMailNumber = tm.getVoiceMailNumber();

//Resultado
String RetornoNumCelular = NumCelular1 +"; "+ IMEI +"; "+ SIMSerial +"; "+ SubscriberId +"; "+ SIMCountryISO +"; "+ SoftwareVersion +"; "+ NetworkCountryISO +"; "+ NetworkOperator +"; "+ NetworkOperatorName +"; "+ Operator +"; "+ OperatorName +"; "+ VoiceMailAlphaTag +"; "+ VoiceMailNumber +"; "+ SimStateStatus;

return(RetornoNumCelular);

}
Posté le 08 juin 2014 - 20:27
Hello! Dear Adriano,

Como posso mudar a permissão para usuário no WinDev Mobile 19 no manisfesto programaticamente?

//Android Manisfest
//<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
//Requires READ_PHONE_STATE uses-permission

Se não pode como faço para enviar o manifesto para o Android com a alteração da permissão?

Muito grato amigo!

Paul-Eric
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 09 juin 2014 - 21:23
Prezado Paul-Eric

Simples no wizard de compilacao que gera o apk, tem uma das telas do wizard um botão que permite editar o Android Manifest.

Eu pedi isso a um ano e meio atras, na versão 17 nao tem, na 18 passou a existir esse editor do android manifest e na 19 além dele apareceu o recurso para proteger o codigo.

Na tela onde informa o sdk do android tem um botão chamado: ADVANCED CONFIGURATION

Abre-se uma nova tela, e clica no Botão: EDIT THE MANIFEST

Inclua seu codigo usando os botoes laterais direitos [+]

Ctrl V

Se quiser a segurança no seu codigo marque: ACTIVER PROGUARD [x]

Forte abraço aqui do Brasil, desejo sucesso com a ferramenta.

Atenciosamente

Adriano Boller
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 10 juin 2014 - 13:24
Hi,

The cell phone number is not free, the system normally protects the cell or returns null for user safety by preventing programs to detect and manage the number for the same span.

Have the IMEI is free easily caught the android system or ios (ipad / iphone / ipod ...)

Att

Adriano
Membre enregistré
13 messages
Popularité : +9 (9 votes)
Posté le 23 septembre 2015 - 14:15
Adriano, Como posso pegar o modelo do dispositivo e versão android?

Excelente tutorial!!!Parabéns!!
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 23 septembre 2015 - 15:19
Danilo

Voce pode tudo com java, desde que não tenha que fazer Root no celular.
A partir do momento que necessite fazer root perde a garantia de fabrica e eu nao recomendo.
É interessante tentar com outro tipo de hardware tipo Arduino ou Raspbery que sao mais abertos.
A função que vc precisa ja postei e voce encontra facil na internet só seguir os meus exemplos vai conseguir implementar codigos java com tranquilidade, lembrando que nao se deve se preocupar com o R.java pois quem cuida disso é o proprio Windev Mobile, voce usa apenas o nucleo do codigo java o CORE apenas com entrada, processamento e result que dai vc usa em sua aplicacao.


Modelo do dispositivo

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.*;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
import android.provider.Settings.Secure;

PUBLIC static string getDeviceName() {

string manufacturer = android.os.Build.MANUFACTURER;
string model = android.os.Build.MODEL;
string brand = android.os.Build.BRAND;
string product = android.os.Build.PRODUCT;
string board = android.os.Build.BOARD;
string bootloader = android.os.Build.BOOTLOADER;
string cpu_abi = android.os.Build.CPU_ABI;
string cpu_abi2 = android.os.Build.CPU_ABI2;
string device = android.os.Build.DEVICE;
string display = android.os.Build.DISPLAY;
string fingerprint = android.os.Build.FINGERPRINT;
string hardware = android.os.Build.HARDWARE;
string host = android.os.Build.HOST;
string id = android.os.Build.ID;
string radio = android.os.Build.RADIO;
string serial = android.os.Build.SERIAL;
string tags = android.os.Build.TAGS;
string type = android.os.Build.TYPE;
string user = android.os.Build.USER;

IF (model.startsWith(manufacturer)) {
RETURN (model);
} ELSE {
string MarcaModeloCelular = "manufacturer: " + (manufacturer) + "; model: " + (model) + "; brand: " + (brand) + "; product: " + (product) + "; board:" + (board) + "; bootloader: " + (bootloader) + "; cpu_abi: " + (cpu_abi) + "; cpu_abi2: " + (cpu_abi2) + "; device: " + (device) + "; display: " + (display) + "; fingerprint: " + (fingerprint) + "; hardware: " + (hardware) + "; host: " + (host) + "; id: " + (id) + "; radio: " + (radio) + "; serial: " + (serial) + "; tags: " + (tags) + "; type: " + (type) + "; user: " + (user);

MarcaModeloCelular = MarcaModeloCelular.toUpperCase();

RETURN MarcaModeloCelular;

}
}


--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________