[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
Can you explain the reason for changes above? It's not related to what you described in commit log to fix the sdcard mount point issue, right? It's related to intent filter. Was there any issue here without the change?