Androidアプリで他のアプリに重ねて表示できるようにするアプリ オーバーレイビュー

あけましておめでとうございます。
本年もよろしくお願いいたします。

さて、リモートアプリもひと段落ついたので
アップデート計画としてオーバーレイビューでも表示できるようにサンプルアプリを作りました。
ソースコードは下記にあります。
https://github.com/shirase-lab/OverlayViewSample
起動時に「他のアプリに重ねて表示できるうようにする」権限画面が表示されるので


リストからOverlayViewSampleを選びます。


有効にします。

戻るボタンを2回押すと起動しMainActivityは最小化しオーバーレイのみの表示になります。

ダブルタップで終了します。
長押し後ドラッグすることで移動します。

フォアグラウンドサービスで起動しているので通知欄に起動中常に通知が表示されます。

実はこれだけなのに3日ほどかかり、かかった理由が楽天ハンド側の不具合だったという。
皆さん開発用のデバイスは最新の状態に保ちましょう。

他のアプリに重ねて表示するアプリは起動しているのになぁって思っていたのですが実はサービス終了後に、再起動を重ねていただけで15秒程度で終了するのを繰り返していたようです。

Pixel 8でも問題なく動作するようにするためAndroid 12/API 31以降にも対応しています。

Foreground Service Typeは通信を行う予定のためFOREGROUND_SERVICE_TYPE_DATA_SYNCにしています。

最新のAndroidはバックグラウンドタスクで動作するのに制限がかかっているためForeground Serviceを使用しています。
Foreground Serviceを使用することによって起動中、常時通知欄にアプリの通知が表示される以外のデメリットはないです。
むしろ通知欄から起動できるようになるので通知欄に表示しておいてくれる方がうれしいかもしれません。

コメント

タイトルとURLをコピーしました