2020年5月12日火曜日

TYPE_APPLICATION_OVERLAYを利用したアプリの開発を再開してみようと思っている話

SYSTEM_ALERT_WINDOWが必要なオーバーレイできる画面を持ったアプリ。
昔はSwipePadというアプリを使っていました。
ホームアプリだけでなく、SystemUIよりも上位のレイヤーにアプリを表示することで、ショートカット起動などを行えるとても便利なアプリです。
しかし現在ではこのアプリはまともに使えません。
SystemUIより上位のレイヤーへの表示はできなくなり、そのレイヤーへの表示をするためにServiceを使いますが、Serviceの起動は画面を持ったコンポーネントからのみ可能に、TYPE_APPLICATION_OVERLAYでも使用には明示的に有効化する必要があります。
まぁなぜかというと、この機能を悪用して画面を操作不能にすることだってできちゃうからです。
ホーム(ランチャー)アプリもしっかり作らないと操作不能になっちゃいますけど、とにかくユーザーが意図して設定したアプリ以外が画面をAndroidのUIよりも強くできるのは良くない!というものです。

上位レイヤーが下位レイヤーに対してイベントをそのまま通知することも出来るので、SwipePadのような便利なアプリもあるのですが・・・。
あるアプリに対して似たようなことを実現したかったのですけど、2週間くらい格闘して諦めてしまっていました。

ところが、Octopusというアプリがやりたいことをほぼ実現できていることを先日知りました。自分がやろうとしていたことと何が違うのか、これがなんとなくですが想像できたので、アプリ開発の再開を決意しました。
とりあえずはとにかく自分が使えるように。出来るようになったとしても公開するかはもちろん未定です。
ただ、もう一度やってみる価値はあるな、と思い至った次第です。

仕事だけだとAndroidアプリそのものの開発は今はそんなでもないので、気晴らしと勉強にって感じですね。
上手くいくと良いのですが。

0 件のコメント:

コメントを投稿