As NFC/ISO 14443 support various communication speeds from 106kbps to at least 424 (e.g. see here), I am wondering how to switch between these bit rates through the Android API in order to shorten the time it takes to read out the entire memory of ISO 14443A tags.
I looked at the Android NFC Basics and Advanced NFC documentation as well as various tag technology pages (some of which IMHO should theoretically support some of the higher speeds), but I couldn't find any hints of changing the bit rates.
I also had a look at some tag datasheets and many of them support the ISO14443-4 mechanisms to change the bit rate through the ATS response and PPS command, which I suppose could be manually used through the generic transceive(byte[] data)
method, but I don't think that would actually change the bit rate of the Android device's NFC chipset... in which case I'd lose the connection to the tag when it switches to a higher speed than the default 106kbps I guess.
ISO14443 supports from 106 to 848 using PPS command defined in ISO14443-4, but NFC (using 14443 protocol) defines only 106kb/s and PPS procedure is out of the scope (PPS command is not described in NFC Forum Digital spec).
The definition that NFC supports from 106kb/s to 424 is because:
Therefore I think it is not possible to change the bit rate using Android API.
Incorporating additional information from the comments below:
The protocol to manage the NFC controller is the NFC Controller Interface (NCI) which is followed by the modern NFC Controllers.
The latest Android Smartphones mostly use the NFC controller chip NXP PN547 (with NXP PN7120). While the NCI protocol does not "officially" support the use of higher bit rates in technology NFC-A & NFCB, the PN7150 User Manual indicates that
the PN7120 MAY send the PPS command if PI_BIT_RATE was set by the DH to an allowed value higher than 0x00.
Android source code defines PI_BIT_RATE = 0x21, therefore theoretically the NFC Controller could send a PPS up to 212 kbit/s (defined in NCI specification) but this is up to the NFC Controller and cannot be changed by Android API for sure.
The Android source tree under platform/system/nfc/halimpl includes the HAL implementations for NXP's PN54x family and Broadcom's BCM2079x family of controllers (which was apparently used in Nexus 4 and Nexus 10 devices).