All Available Locales on Pixel Running Android 7.1.1
I have found it surprisingly difficult to find a comprehensive list of locales supported on Android. This is true for many reasons (locales are astonishingly complicated), but it seems like it should be easy to find the list of all locales that come back from java.util.Locale.getAvailableLocales(). Rather than add yet another answer to this Stack Overflow question, I thought I would share my own dump of locales here.
So here is what I got when I called Locale.getAvailableLocales() on my Pixel running Android 7.1.1, and then called toString() on each one:
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
be
be_BY
bg
bg_BG
ca
ca_ES
cs
cs_CZ
da
da_DK
de
de_AT
de_CH
de_DE
de_GR
de_LU
el
el_CY
el_GR
en
en_AU
en_CA
en_GB
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_ZA
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_CU
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
fi
fi_FI
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
hi
hi_IN
hr
hr_HR
hu
hu_HU
in
in_ID
is
is_IS
it
it_CH
it_IT
iw
iw_IL
ja
ja_JP
ja_JP_JP_#u-ca-japanese
ko
ko_KR
lt
lt_LT
lv
lv_LV
mk
mk_MK
ms
ms_MY
mt
mt_MT
nl
nl_BE
nl_NL
no
no_NO
no_NO_NY
pl
pl_PL
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
sk
sk_SK
sl
sl_SI
sq
sq_AL
sr
sr_BA
sr_BA_#Latn
sr_CS
sr_ME
sr_ME_#Latn
sr_RS
sr_RS_#Latn
sr__#Latn
sv
sv_SE
th
th_TH
th_TH_TH_#u-nu-thai
tr
tr_TR
uk
uk_UA
vi
vi_VN
zh
zh_CN
zh_HK
zh_SG
zh_TW