[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
Most of the test device from QA are ZTE975, it's ROM version is B03 which mount the storage from "/storage/sdcard1".