Emoji è un simbolo Unicode. Sulla base della tabella dei caratteri Unicode, i contrassegni Emoji sono composti da 26 caratteri Unicode alfabetici (A-Z) destinati alla codifica dei codici paese ISO 3166-1 alpha-2 a due lettere (wiki).
Questo significa che è possibile dividere due lettere codice del paese e convertire ogni lettera A-Z alla lettera indicatore simbolo regionale:
private String localeToEmoji(Locale locale) {
String countryCode = locale.getCountry();
int firstLetter = Character.codePointAt(countryCode, 0) - 0x41 + 0x1F1E6;
int secondLetter = Character.codePointAt(countryCode, 1) - 0x41 + 0x1F1E6;
return new String(Character.toChars(firstLetter)) + new String(Character.toChars(secondLetter));
}
Dove 0x41
rappresenta maiuscolo A
lettera e 0x1F1E6
è REGIONAL INDICATOR SYMBOL LETTER A
nella tabella Unicode.
Nota: Questo esempio di codice è semplificato e non ha richiesto controlli relativi al codice paese, che potrebbero non essere disponibili all'interno della locale.
Grazie per l'aiuto. Sono stato in grado di utilizzare il codice del paese del dispositivo per trovare la bandiera delle emoji. –