In v3 we use cursor.getInt(sizeIndex) to get the size of the file. However the maximum addressable size for an int is 2,147,483,647 i.e. 2GB. The Android documentation suggests that the underlying type of this column is an int, however we should double check this. We should check what the result of trying to pick a 4GB+ file is and check if switching to a long instead of an int makes a difference to the size returned by the picker when picking files larger than 2GB.