Read block data from an NDEF compatible tag.

        This is a convinience method to read block data from a tag
        that has system code 0x12FC (NDEF). For other tags this method
        simply returns :const:`None`. All arguments are block numbers
        to read. To actually pass a list of block numbers requires
        unpacking. The following example calls would have the same
        effect of reading 32 byte data from from blocks 1 and 8.::

            data = tag.read_from_ndef_service(1, 8)
            data = tag.read_from_ndef_service(*list(1, 8))

        Command execution errors raise :exc:`~nfc.tag.TagCommandError`.

def read_from_ndef_service(self, *blocks):
        """Read block data from an NDEF compatible tag.

        This is a convinience method to read block data from a tag
        that has system code 0x12FC (NDEF). For other tags this method
        simply returns :const:`None`. All arguments are block numbers
        to read. To actually pass a list of block numbers requires
        unpacking. The following example calls would have the same
        effect of reading 32 byte data from from blocks 1 and 8.::

            data = tag.read_from_ndef_service(1, 8)
            data = tag.read_from_ndef_service(*list(1, 8))

        Command execution errors raise :exc:`~nfc.tag.TagCommandError`.

        """
        if self.sys == 0x12FC:
            sc_list = [ServiceCode(0, 0b001011)]
            bc_list = [BlockCode(n) for n in blocks]
            return self.read_without_encryption(sc_list, bc_list)