サードパーティ製のアプリをアップグレードしようと思って、アプリ本体をダウンロードした。
ダウンロードしたアプリをインストールしようとしたら、インストールボタンが押せない。
最初はフリーズしたのかと思ったけど、何故かキャンセルボタンは押すことができる。
設定が変わっているのかと思って、設定を確認したけど「提供元不明のアプリのインストールを許可する」にチェックが入っている。
こんな時はグーグル先生に質問してみるのが早いので、早速質問してみた。
「アンドロイド サードパーティ インストール 押せない」
みたいな感じで検索をして、表示された一番上のサイトを見て解決した。
SYSTEM_ALERT_WINDOWが有効なアプリに注意
詳しいことはよくわからないけど、ある条件に当てはまるアプリがインストールされていると、Google Play以外からの野良アプリはインストールできなくなってしまうということらしい。
ある条件に当てはまるアプリというのは、SYSTEM_ALERT_WINDOWというパーミッションを利用しているアプリのこと。
Android端末でパーミッションというのはアクセス権のことを言うみたい。
ざっくりした話をすると、サードパーティアプリだろうがGoogle Playからのアプリだろうが、インストールされているアプリの中にSYSTEM_ALERT_WINDOWというアクセス権を利用しているアプリがあると、新しくサードパーティアプリをインストールできなくなるということ。
このパーミッションを使用しているアプリをアンインストールすれば、新たにサードパーティアプリをインストールすることができるようになる。
ではどうやって調べるか。
アプリが利用しているパーミッションを調べるアプリが存在するので、このアプリを利用して原因となっているアプリを特定する。
アプリの名称はS2 Permission Checker。
Google Playでインストールできるので早速インストールして該当するパーミッションを利用しているアプリを特定できた。
自分の端末でこのパーミッションを利用していたのは「ブルーライトプロテクター」というアプリだった。
SYSTEM_ALERT_WINDOWというパーミッションは他のアプリやユーザーインターフェースの一部の上に重ねて描写することをアプリに許可するものだから、ブルーライトをカットするようなフィルターを上書きするために使っていると思われる。
面倒だからブルーライトプロテクターをアンインストールしてしまった。
ここでサードパーティアプリをインストールしてみたら、今度はちゃんとボタンを押せるようになっていた。
ちなみに、プリインストールアプリやgoogle公式アプリ、システム系のアプリはSYSTEM_ALERT_WINDOWを利用していても不具合が起きないように設定されているはずなので、はじめに疑うべきアプリは自分でインストールしたアプリにした方がいい。