Hirdetés

Új hozzászólás Aktív témák

  • k.kristof

    őstag

    Sziasztok!

    Van egy Android alkalmazásom, aminek fő funkciója QR kód olvasás, majd a beolvasott adattartalommal csinál ezt-azt. Az activitynek, ami a beolvasás előnézetét mutatja és a beolvasást végzi, van egy private metódusa, ami a sikeres olvasás esetén kezeli az adatot. Szeretném, ha NFC-vel is fogadni tudnám egy másik eszközről az adatokat, és átadni ennek a metódusnak, úgyhogy implementáltam a HostApduService-t a leírtak szerint, az activityben pedig az onCreate()-en belül elindítom:

    Intent hceIntent = new Intent(getBaseContext(),MyHostApduService.class);
    startService(hceIntent);

    onResume()-on belül regisztrálok hozzá egy BroadcastReceivert:

    registerReceiver(myReceiver,myFilter);

    private BroadcastReceiver myReceiver =
    new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
    Log.i("ActScanner","Broadcast received from MyHostApduService");
    Intent myIntent = getIntent();
    String p_Result = myIntent.getStringExtra(MyHostApduService.EXTRA_MESSAGE);
    if ((p_Result != null) && (0 < p_Result.length())) {
    HandleQRResult(p_Result);
    }
    }
    };

    Így küldenék az activitynek üzenetet a kapott, APDU-ból kiszedett adatokkal:

    Intent myIntent = new Intent(getBaseContext(),ActScanner.class);
    byte[] rawdata = new byte[255];
    System.arraycopy(apdu,5,rawdata,0,apdu.length - 5);
    String message = new String(rawdata);
    myIntent.putExtra(EXTRA_MESSAGE,message);
    sendBroadcast(myIntent);

    A bajom egyelőre az, hogy a másik eszköz azt kapja, hogy nincs ami kezelje az AID-ot, amit beállítottam az alkalmazásban, és amit biztos nem kezel semmi más a telefonon. Ha ezen túllépnék, akkor jól csináltam a fentit, tehát miközben fut az activity, tud NFC-n is adatot fogadni az alkalmazás, és megtörténhet a kívánt esemény?

Új hozzászólás Aktív témák