[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
Ok, if this issue won't be fixed, I will send another PR. thanks.