5 Replies Latest reply on Aug 21, 2018 1:12 PM by Gurpreet Gandhi

    RFD8500 Triggered Inventory with Single Read Requirement

    Marshall Ellis

      Hello all:


      This might be a more of an RFID technology question as opposed to RFD Android SDK question.

      I have always struggled with the sessions of the gen2 tags (0,1,2,3) as to where they should be utilized. Most of the websites that I have reviewed pertaining to the different sessions look like some type of nightmarish sudoku puzzle!?!?!?


      My app is a simple pull the trigger, read all tags ONCE in the read field, release the trigger, stop reading.


      Everything is working fine with the TC51/RFD8500 and the trigger but the tags are being reported multiple times. I believe this is in the session reporting but could not find an example of what I should set this to so that the tag is only reported once???


      Thanks in advance!


      Marshall Ellis

        • Re: RFD8500 Triggered Inventory with Single Read Requirement
          Gurpreet Gandhi

          Hi Marshall,


          I need  small help regarding the Asynchronous reading of the tags in android.

          Can you share your contact details ?



          Gurpreet Gandhi


              • Re: RFD8500 Triggered Inventory with Single Read Requirement
                Gurpreet Gandhi

                HI Marshall,


                Many thanks for your response.


                I'm trying to build a tailored Android application for Zebra 8500 using RFIDAPI3Library(zebra_rfidapi_sdk_2.0.0.2) provided by Zebra.


                what I'm trying to achieve was to catch asynchronous responses from the Device, i.e whenever the HANDHELD trigger is PRESSED/RELEASED the data captured by  Device can be read, similar kind of issue is happening for fetching the Battery as well.


                What I tried was :

                RFIDReader rfidReaderDevice = readerDevice.getRFIDReader();
                if (rfidReaderDevice != null) {
                    Toast.makeText(MainActivity.this, "Async Subscribe:: Start Trigger:" +
                            rfidReaderDevice.Config.getStartTrigger() , Toast.LENGTH_SHORT).show();

                    RfidEventsListener eventsListener = new RfidEventsListener() {
                        public void eventReadNotify(RfidReadEvents rfidReadEvents) {
                            String tags = rfidReadEvents.getReadEventData().tagData.getTagID();
                            statusField.setText("Method Call : eventReadNotify" );
                           // Toast.makeText(MainActivity.this, "Method Call : eventReadNotify + " + tags, Toast.LENGTH_SHORT).show();

                        public void eventStatusNotify(RfidStatusEvents rfidStatusEvents) {
                            Events.HandheldTriggerEventData statusEventData = rfidStatusEvents.StatusEventData.HandheldTriggerEventData;
                          //  Toast.makeText(MainActivity.this, "Method Call : Status Notify Data +  statusEventData.getHandheldEvent()", Toast.LENGTH_SHORT).show();
                            statusField.setText("Method Call : Status Notify Data" );



                It Seems framework is never calling eventReadNotify/eventStatusNotify for any HANDHELD Events.


                Can you please help me with what I'm missing, or what Events should be set true to catch the HANDHELD Events?


                Many Thanks,

                Gurpreet Gandhi

                  • Re: RFD8500 Triggered Inventory with Single Read Requirement
                    Marshall Ellis



                    Perhaps you are missing the event handler connection of their event handler class?


                    //ADD EVENT HANDLERS

                    EventHandler eh = new EventHandler();





                    class EventHandler implements RfidEventsListener{

                        public void eventReadNotify(RfidReadEvents e){


                            DCCClientActivity.activity.runOnUiThread(new Runnable() {


                                public void run() {

                                    int c = 0;

                                    String tagid = "";

                                    TagData[] tags = null;



                                        tags =  zebra_reader.Actions.getReadTags(100);

                                        if (tags != null){

                                            for (c = 0; c < tags.length; c++){

                                                if (add_H_prefix){

                                                    tagid = "H" + tags[c].getTagID();



                                                    tagid = tags[c].getTagID();


                                                if (!taglist.contains(tagid)){

                                                    //Log.d("DCCMsg", "FIRST Add:" + tagid);


                                                    result = process_tag(tagid);





                                    catch (Exception ex){

                                        Log.d("DCCMsg EventHandler", ex.getMessage());









                    Marshall Ellis

                    Lead Developer




                    Technical Support

                    Email: support@datacollectioncenter.com<mailto:support@datacollectioncenter.com>

                    Phone: 940-206-1721