13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Android】「Android絵文字ポリシー」に開発者が対応する事

Last updated at Posted at 2022-05-26

この記事は

2021年10月の Google Play ポリシーアップデートにより「Android絵文字ポリシー」が追加されました。

追加されたポリシーに対応するためにAndroidアプリで開発者が実装しなければならないことがいくつかあるので記事にしてみます。

「Android絵文字ポリシー」について簡単に解説

Googleはこれまで絵文字の更新をOSのアップデートにより新しい絵文字を追加してきました。

最新のOSを搭載する高価格帯の端末ユーザーであれば、最新の絵文字を利用できていたが、それ以外のユーザーは最新の絵文字が送られてきても表示できず豆腐と呼ばれる小さな四角い箱(☐)や、間違ってレンダリングされた絵文字シーケンスとして表示される利用できない絵文字が生じていました。

今回の「Android 絵文字ポリシー」によりOS依存であった絵文字の更新が対応アプリの更新で絵文字をアップデートするようになりました。
最新のOSを搭載する高価格帯の端末ユーザーでなくても最新の絵文字を手に入れ利用できるようになったのです。

簡単に言うと、
アプリ側で絵文字をサポートしてあげれば古い端末・OSのユーザーであっても最新の絵文字を利用できるよっっ!!
ってことです。

実装方法

前提条件

アプリが最近の絵文字を適切に表示することを確認するには、Android 4.4(API レベル 19)から Android 10(API レベル 29)までのバージョンを搭載したデバイスでアプリを起動します。

前提条件の確認が終わりましたら早速実装していきます。
基本的に以下2つのどちらかの方法で実装可能みたいです。

  • AppCompatライブラリを使用する(1.4.1以上)
  • EmojiCompatを明示的に導入する

今回は、AppCompatライブラリを使用したほうが簡単そうだったのでそちらで実装しました。
何らかの理由でライブラリを使用できない場合はこちらの記事を参考に実装してみてください。

依存関係

build.gradleファイルに必要なアーティファクトの依存関係を追加します。

build.gradle
dependencies {
    def appcompat_version = "1.4.1"
    implementation "androidx.appcompat:appcompat:$appcompat_version"
    implementation "androidx.appcompat:appcompat-resources:$appcompat_version"
}

AppCompat:1.4.1はcompileSdkVersionが31以上に設定されている必要があります。

build.gradle
 android {
-    compileSdkVersion 30
+    compileSdkVersion 31
 }

Activity

次にテキストを表示する全てのActivityで継承先をAppCompatActivityにします。

MainActivity.java
class MainActivity extends AppCompatActivity {
 
}

カスタムビューを使用している場合

カスタムビューがアプリにある場合は、それぞれがEmojiCompatを実装する必要があります。

AppCompatを仕様している場合は継承先をAppCompatのViewを継承するよう変更します。

EmojiTextView.java
- public class EmojiTextView extends TextView {
+ public class EmojiTextView extends AppCompatTextView {
変更前 変更後
TextView AppCompatTextView
EditText AppCompatEditText
ToggleButton AppCompatToggleButton
Switch SwitchCompat
Button AppCompatButton
CheckedTextView AppCompatCheckedTextView
RadioButton AppCompatRadioButton
CheckBox AppCompatCheckBox
AutoCompleteTextView AppCompatAutoCompleteTextView
MultiAutoCompleteTextView AppCompatMultiAutoCompleteTextView

確認

以上で実装は完了です。
搭載OSがAndroid10以前の端末でアプリを起動し、最新の絵文字を表示してみてください。
全ての絵文字が正しく表示されていれば成功です。

😶‍🌫️ 🧔🏻‍♀️ 🧑🏿‍❤️‍🧑🏾 : 13.1
🥲 🥷🏿 🐻‍❄️ : 13.0
🧑🏻‍🦰 🧑🏿‍🦯 👩🏻‍🤝‍👩🏼 : 12.1
🦩 🦻🏿 👩🏼‍🤝‍👩🏻 : 12.0

こんな感じ

変更前 変更後
スクリーンショット 0004-05-26 14.52.46.png スクリーンショット 0004-05-26 14.53.02.png

絵文字って絵文字同士を組み合わせて出来てるのかな?

最後に

初めて記事を書いてみましたが誰かの参考になれば幸いです!!

ではまた!!

参考

13
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?