[Android] Fix the file picker crash issue and optimize the process.

This patch is to fix the special case with some ROMs and optimize the process.
If there is no SD card on device, getExternalStoragePublicDirectory()
returns null on these ROMs.
The ROMs changes the setting in "/system/etc/vold.fstab", external storage was
mounted on "/storage/sdcard1", but the default external storage was mounted from
"/storage/sdcard0".
If the default external storage was not existed, get the other storage.
Optimize the process to run related apps when file picker's accept type
was specified.

BUG=XWALK-2902, XWALK-2972
Using internal methods are not recommended, I even think if we have to use this way to fix it, it's not worth it if it's not a customer report issue. Are those non-standard devices popular out there?