barbaro
Hij@'e Puta
- Registrado
- 2005/08/10
- Mensajes
- 8.839
y vo eris muy viejo zorro, culiao?no sabi buscar po perro, tipico pendejo que se las da de hacker y con cue sabe prender el pc
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
y vo eris muy viejo zorro, culiao?no sabi buscar po perro, tipico pendejo que se las da de hacker y con cue sabe prender el pc
y pa que te picai? andai tan desesperado buscando la apk que no sabi ni buscar queri que te la cargue tambien? no se te vaya a ocurrir cargar el pase aweonaoy vo eris muy viejo zorro, culiao?

tan miserable es tu vida que se infla el pecho al tiro por saber UNA cosa mas que otra personay pa que te picai? andai tan desesperado buscando la apk que no sabi ni buscar queri que te la cargue tambien? no se te vaya a ocurrir cargar el pase aweonao
[DOUBLEPOST=1414258735,1414258610][/DOUBLEPOST]
me parece que la primera version es la que todos tienen. incluso mas atras la vi posteada piola.Ah, tengo la primera app que apareció, no he buscado otra, si les interesa la subo.
Enviado desde mi HTC One_M8 mediante Tapatalk


igual andai desesperado buscandola jajajajjaatan miserable es tu vida que se infla el pecho al tiro por saber UNA cosa mas que otra persona[DOUBLEPOST=1414258735,1414258610][/DOUBLEPOST]
me parece que la primera version es la que todos tienen. incluso mas atras la vi posteada piola.

Carga saldo que tu quieras, en teoría debería ser más pega para sonda, ya que no sólo restrarian las de 10kMe quedé atrás, jajaja que diferencia tiene la 1.5?
Enviado desde mi HTC One_M8 mediante Tapatalk
igual andai desesperado buscandola jajajajjaa

La 1.5 revisaste que no pide conexión a Internet?. Yo i gut tengo las 2. Otra cosa, para instalar la 1.5 hay que desinstalar k a 1.1 previamente.
Enviado desde mi SM-G900H mediante Tapatalk

Si en la 1.5 solo pide permiso para usar el NFC nada mas... Lo otro seria que decompilaran la aplicacion y la revisaran bien...
package com.example.puntobip;
import java.io.IOException;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter.MalformedMimeTypeException;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.MifareClassic;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private final String MONTO_DEFAULT = "2000";
private TapDialog tapDialog;
private NfcAdapter mNfcAdapter;
private PendingIntent mPendingIntent;
private IntentFilter[] mFilters;
private String[][] mTechList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tapDialog = new TapDialog(this, getResources().getString(R.string.consultar_saldo)).display();
inicializarNFC();
}
public void onCargarSaldo(View view) {
String txtSaldo = ((TextView)findViewById(R.id.tvSaldoBIP)).getText().toString().replace("$", "");
tapDialog = new TapDialog(this, getResources().getString(R.string.cargar_saldo)).displayCargar(txtSaldo.isEmpty() ? MONTO_DEFAULT : txtSaldo);
}
public void onCambiarNumero(View view) {
TextView tvNumeroBIP = (TextView)findViewById(R.id.tvNumeroBIP);
tapDialog = new TapDialog(this, getResources().getString(R.string.cambiar_numero)).displayNumero(tvNumeroBIP.getText().toString());
}
private void inicializarNFC() {
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (mNfcAdapter == null) {
Toast.makeText(this, "Este dispositivo no soporta NFC.", Toast.LENGTH_LONG).show();
finish();
return;
}
if (!mNfcAdapter.isEnabled()) {
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("NFC deshabilitado");
alertDialog.setMessage("Su NFC esta deshabilitado.\nIngrese a las opciones de configuracion y activelo.");
alertDialog.show();
}
mPendingIntent = PendingIntent.getActivity(this, 0,
new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);
try {
ndef.addDataType("*/*");
} catch (MalformedMimeTypeException e) {
throw new RuntimeException("error", e);
}
mFilters = new IntentFilter[] {ndef};
mTechList = new String[][] { new String[] { MifareClassic.class.getName() } };
}
@Override
protected void onResume() {
super.onResume();
mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, mFilters, mTechList);
}
@Override
protected void onPause() {
super.onPause();
mNfcAdapter.disableForegroundDispatch(this);
}
@Override
protected void onNewIntent(Intent intent) {
String action = intent.getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) {
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
MifareManager mifare = new MifareManager(tagFromIntent);
try {
mifare.open();
if(tapDialog.isShowing()) {
procesarOperacion(tapDialog, mifare);
}
desplegarDatosTarjeta(mifare);
} catch (AuthenticateException e) {
Log.e("error", "error autenticando sector", e);
Toast.makeText(this, "error autenticando sector " + e.getSector(), Toast.LENGTH_LONG).show();
} catch (Exception e) {
Log.e("error", "error desconocido", e);
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
} finally {
if(tapDialog != null) tapDialog.dismiss();
mifare.close();
}
}
}
/**
* Despliega datos de tarjeta
* @param mifare
* @throws IOException
* @throws AuthenticateException
*/
private void desplegarDatosTarjeta(MifareManager mifare) throws IOException, AuthenticateException {
TextView tvNumeroUUID = (TextView)findViewById(R.id.tvNumeroUUID);
TextView tvNumeroBIP = (TextView)findViewById(R.id.tvNumeroBIP);
TextView tvSaldoBIP = (TextView)findViewById(R.id.tvSaldoBIP);
byte[] data;
// uuid
tvNumeroUUID.setText(Utils.leToNumericString(mifare.getTag().getId(), 4));
// numero bip
data = mifare.readBlock(0x01);
tvNumeroBIP.setText(Utils.leToNumericString(new byte[]{data[4],data[5],data[6],data[7]}, 4));
// saldo bip
data = mifare.readBlock(0x21);
tvSaldoBIP.setText(Utils.formatMoneda(Utils.leToNumeric(data, 2)));
}
/**
* Procesa una operacion sobre la tarjeta
* @param tapDialog
* @param mifare
* @throws IOException
* @throws AuthenticateException
*/
private void procesarOperacion(TapDialog tapDialog, MifareManager mifare) throws IOException, AuthenticateException {
switch (tapDialog.getTag()) {
case Constants.DIALOG_CARGAR:
String txtMontoCargar = ((EditText)tapDialog.findViewById(R.id.etMontoCargar)).getText().toString();
int montoCargar = (txtMontoCargar.length() == 0) ? 0 : Integer.parseInt(txtMontoCargar);
mifare.writeValue(0x21, montoCargar);
mifare.writeValue(0x22, montoCargar);
break;
case Constants.DIALOG_NUMERO:
String txtNumeroBip = ((EditText)tapDialog.findViewById(R.id.etNumeroBip)).getText().toString();
long numeroBip = (txtNumeroBip.length() == 0) ? 0 : Long.parseLong(txtNumeroBip);
byte[] data = mifare.readBlock(0x01);
data[4] = (byte) (numeroBip >>> 0);
data[5] = (byte) (numeroBip >>> 8);
data[6] = (byte) (numeroBip >>> 16);
data[7] = (byte) (numeroBip >>> 24);
mifare.writeBlock(0x01, data);
break;
}
}
}
