GMS が搭載されていない Android でプッシュ通知を受け取る
とある記事でできる旨が書いてあったので試してみたところいくらか詰まりポイントがあったので忘れないように覚書。
前置き
Q: GMS が搭載されていない技適の付いている Android は存在するのか?
A: 存在する。
日本には技適という仕組みがあり、基本的には海外から輸入したスマートフォンやタブレットは特殊なルートを通らない限りは使えません。
基本的に国内で流通している Android スマートフォンやタブレットには GMS が搭載されています。
が、一部例外もあり、有名どころでは Kindle Fire タブレットがあります。
他に、HUAWEI の Mate 30 以降に発表された端末はすべて GMS 非搭載となっています。
本記事ではその一つ Mate 30 Pro で設定を進めていきます。
プッシュ通知が届かない
GMS が搭載されていない端末では、一部を除いて、プッシュ通知の受け取りができません。
それはプッシュ通知を GMS に乗っかって利用している事が多いためです。
Facebook は GMS に依存していないため、プッシュ通知は特に何もしなくても届きます。
プッシュ通知を受け取るには
microG を利用する事で、GMS の入っていない端末でもプッシュ通知を受け取ることができるようになります。
これの挙動に少し癖があったのでそれを含めて以下に導入方法としてまとめます。
microG を導入する
- ここから Services Core と Services Framework Proxy をダウンロードする
- それぞれインストールする
microG設定
アプリを開く- Google デバイス登録を ON にする
- Cloud Messaging を ON にする
これで導入は完了です。
プッシュ通知を使用するアプリ一覧が更新されない
ですが、これだけだとプッシュ通知を使用するアプリ一覧は更新されず、アイテムが無いと言われます。
ここがちょっと癖のある挙動で、microG がインストールされた後にインストールしたアプリしか一覧追加されません。また、実際にプッシュ通知も届きません。
そのため、一度アプリの再インストールをする、もしくはアプリのアップデートがされるのを待つ必要があります。
すると、Cloud Messaging のプッシュ通知を使用するアプリ一覧に対象のアプリが表示され、プッシュ通知が正常に届くようになります。
それでもやっぱり届かないアプリがある
諦めましょう。
こちらでは Chatwork でその現象を確認しています。
恐らくは実装側で Google Play 開発者サービスが起動していない端末ではプッシュ通知周りの処理をしないようなコードになっているんだと思います。
そもそも起動しないアプリはどうしたら
諦めましょう。GMS の載っていない端末を使っているような人が他の端末を持っていないわけがないので素直に GMS が載っている端末 OR iOS を使いましょう。