Magicode logo
Magicode
1
4 min read

Samsung Galasyで起こる不具合について

Samsungの独自UIの問題について

https://dontkillmyapp.com/

に書いてある通りですが、Samsungを筆頭としたAndroidのベンダーは独自のユーザーインターフェースを用いてバッテリーの消費を最適化しています。

それ自体に問題は(あまり)ないのです。 Androidがオープンソースである以上、Androidの開発者達は、AndroidというベースOSが意図しない動作を上書きする場合はそれについての透明性をできるだけ確保するように各自ベンダーに求めています。まぁ透明性についてはいろいろありますが、その一つには、「Androidがネイティブでサポートしていない根幹にかかわる機能は、設定から容易に切る事ができる事」が入っている事は(OSSの理念上)当然だと考えられます。

つまりここでの問題は、Sansungは他者の用にバッテリーの消費を最適化しているが、そのルーティンの中にバックグラウンドのアプリの強制停止、データ通信の強制停止、最近では(バグの可能性もありますが)フォアグラウンドアプリの強制停止など、本来カーネルが行うべき挙動を対象とした実装がなされていて、Samsungはそれ止めるための設定項目をはっきりとは用意していないという事です。

私がこの問題に気付いたのは、Spotifyのアプリで「再生中」のバーが何分かアプリを触っていないだけで突然消えるという不具合を経験してからでした。 それ以前から通知がこない、何日か触ってないアラームが週を跨いで機能しないなど「あれ」と思う事が色々ありましたが、Spotifyは良く使うのでさすがに我慢できなくなりかなり時間を費して調べました。

※これが発端です (身バレしそう...)

https://community.spotify.com/t5/Ongoing-Issues/Now-Playing-bar-missing-on-Android/idc-p/5391512/highlight/true#M126939

ではどうすれば無効化できるのか

これは上に貼ったリンクの和訳となります。 当方海外にいるて、デバイスの基本設定が英語なので、設定項目の和訳が間違えているかもしれません。その時はコメントでおしえて下さい。また質問なども受付ています。

レベル1

大抵の挙動はこれで解決します。

Android 12. UI ver. 4.1 で動作確認

  1. 設定アプリを開く

  2. アプリ→対象のアプリ→アプリが未使用の場合に権限を削除をオフにする

  3. (2.)の設定で、バッテリーをタップして制限無しを設定する

  4. 設定アプリのバッテリーとデバイスケアを選択

  5. バッテリーから省電力モードをオフに

  6. (5.)と同じメニューで、バックグラウンドでの仕様を制限をタップして、仕様していないアプリをスリープをオフに。

  7. (6.)と同じメニューでスリープ状態にしないアプリをタップして上の"+"を押して全てのアプリを追加する

  8. (5.)と同じメニューに戻り、その他のバッテリー設定を選択、バッテリーを最適化をオフに。バッテリー保護もオフに。

  9. (4.)と同じメニューに戻り上の"︙"を押して自動化を選択。その全てをオフに (毎日自動最適化、設定時刻に自動最起動、省電力を最適化)。

  10. (4.)と同じメニューで ︙の横の統計のアイコンを押す (.i|こんなやつ)。 一番下の自動最適化をオフにする。

  11. (4.) と同じメニューで、メモリーを選択、「除外するアプリ」で上の"+"をおして、全てのアプリをリストに追加

  12. (4.)と同じメニューでデバイスを保護をオフに。

  13. 設定アプリで、「便利な機能」を選択して、他のデバイスでアプリを続行をオンに(ここはしなくてもいいかも)

  14. 再起動 (https://www.galaxymobile.jp/support/mobile-devices/how-do-i-force-a-reboot-in-galaxy/)

レベル2

レベル1では、短い楽曲などではおかしな挙動をしなくなりますが、 でもやっぱり長いPodCastなどを再生中に一時停止して他のアプリに移ってごちゃごちゃやると、戻った時にやはりアプリの挙動がおかしくなります。また、通信状態の悪い所で長時間バックグラウンドに放置をしたりするとやはり挙動が辺になります。

その場合は開発者向けオプションをさらにいじくらなければなりません。

  1. 開発者向けオプションを有効にする (詳しくはここなどを参考にして下さい https://atmarkit.itmedia.co.jp/ait/articles/1602/19/news044.html#:~:text=%EF%BC%BB%E9%96%8B%E7%99%BA%E8%80%85%E5%90%91%E3%81%91%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%EF%BC%BD%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC,%E3%81%9F%E3%82%89%E3%80%81%E8%A8%AD%E5%AE%9A%E3%81%AF%E5%AE%8C%E4%BA%86%E3%81%A0%E3%80%82)
  2. 開発者向けオプションで、「バックグラウンドの上限」をバックグラウンドプロセスを使用しないに設定する。
  3. 再起動 (https://www.galaxymobile.jp/support/mobile-devices/how-do-i-force-a-reboot-in-galaxy/) 再起動をすると(2.)の設定が上書きされて元に戻ってしまいます!

これで多分解決します。私の場合は解決しました。 解決しませんでした... :(

おわりに

最後にこんな事を書くのはあれですが、上記の設定をすると、セキュリティに問題がでる可能性があります。なぜなら、プロセスの制限とセキュリティというのは表裏一体だからです。上の設定がSamsungによる設定のみを上書きする事をそれこそ神に祈るしかありません。

これのなにが卑怯かって、(意図的かはおいておいて、結果として)Samsungはデバイスのセキュリティーを盾にこれらの設定を容易に変更でいないようにしているように思えてならない所です。でもこればっかりは本当の所はどうかはわかりませんが、他のデバイスでは普通に機能するアプリが機能しなくなるのにはすごくイライラしますね。

Discussion

コメントにはログインが必要です。