わが家で活躍中の子どものスマホ管理アプリ「DinnerTime Plus」ですが、レビューをみると、一部の機種で動作しないという報告があります。
わが家では、Xperia Z3(au版 SOL26)と、Galaxy Tab7.7(SC-01E)にDinnerTime Plusを入れていますが、問題なく動作しています。
わが家でのDinnerTime Plus運用に関しては、こちらの記事もどうぞ。
そして、最近購入したhonor8にもDinnerTime Plusを導入してみました。
Huawei製のスマホでは上手く動作しないという書き込みがあり少々不安でしたが。。。
honor8は2017年2月の購入時、Android6でしたが、すぐにAndroid7のバージョンアップ通知が来たので更新してあります。
Contents
初期状態では動作せず
hornor8にDinnerTime Plusをインストールして、親のスマホに登録。
ロックをかけたり、時間制限の動作は問題なく動作しました。
(心配したのは杞憂だったかな)
なんて思っていたのですが、honor8がスリープに入ってしばらくすると、親のスマホではオフラインになっています。
オフラインになると、親のスマホからロックをかけたり、設定変更ができなくなってしまいます。
「やはりHuawei製スマホでは動作しないのか・・・」
しかし、このまま引き下がっては自称SEの名が廃る(SEとは無関係の内容ですが)、と本腰を入れて調査に乗り出しました。
設定でバックグラウンド処理を可能にする
今から紹介する設定は Huaweiのhonor8、Andorid7.0でのやり方です。
メーカーや機種、また Androidのバージョンによって設定画面の構成が異なるので、近い項目を探してみてください。
バックグラウンド動作の設定
どうやらHuawei製のスマホは、電力管理が厳しい(長時間動作するように省電力化している)らしいので、スリープに入ると自動的にアプリを止めてしまうようです。
とはいえ、勝手に止まると困るアプリはあるので、設定でスリープでも動作し続けるアプリを指定することが可能です。
設定画面のアプリを表示し、画面の中にある「設定」をタップします。
すると、アプリの設定画面が表示されるので、「特別なアクセス」をタップします。
特別なアクセス画面にある「バッテリー最適化を無視」をタップして、DinnerTime Plusを許可に設定します。
honor8にはもう一つ、スリープでアプリを閉じてしまう設定があります。
設定画面から電池を選択し、「画面ロック時にアプリを閉じる」をタップします。
ロック画面のクリーンアップで、DinnerTime Plusのスイッチをオフにして閉じないように設定します。
これでスリープになってもオフラインにはならないだろうと実験してみました。
が、やっぱりオフラインになっています。
しかし、honor8を見るとDinnerTime Plusはバックグランドで動作し続けていました。
バックグラウンドでの通信設定
どうやら省電力のためにアプリの動作だけでなく、バックグラウンドの通信も止めてしまう機能があるようです。
こちらも設定画面で変更が可能です。
先ほどの設定 → アプリ → 設定 → 特別なアクセス画面にある「データ通信を制限しないアプリ」をタップします。
データ通信を制限しないアプリ画面でDinnerTime PlusのスイッチをONにします。
さて、これで完璧!
と思い、スリープに入ってしばらく放置してみました。
しかし、一見するとちゃんと動作しているように思えたのですが、数時間経つとまたオフラインになっています。。。
これ以上設定するところが見あたらない・・・。
途方にくれかけましたが、ふと、Androidそのものの省電力機能「Dozeモード」の動作に問題があるのでは、と考えました。
Dozeモードとは
あまり聞きなれないかもしれませんが、Android6から「Dozeモード」という機能が追加されています。
これまで各メーカーが独自に実装していた「省電力モード」をOSレベルで実装したものです。
Android6で実装されたDozeモードの動きは、ざっくりいうと「スリープに入ってしばらくすると、使っていないと思われるアプリの動作を停止することでバッテリー消費を抑える」ことです。
Android7では進化して、「浅いDozeモード」と「深いDozeモード」があり、段階的に機能制御しているようです。
先ほど設定で変更したバックグラウンドでのアプリ動作や通信の設定は、実はDozeモードに絡む設定と思われます。
だったら、その設定をすれば、バックグラウンドでも動作、通信し続けるんじゃないのか、と思うのですが、実際はそうなっていません。
Dozeモードを何とかしたい!
どうやらDozeモードできちんと動作するためには、アプリ側もそれなりの対応が必要になるようです。
また、深いDozeモードに入ってしまうと、通信許可している場合でも通信が遮断される可能性がある、という記述もありました。
さらにDozeモードそのものをオフにする機能は今のところ、実装されていないとのこと。
アプリ本体の通信と、プッシュ通知の仕組みは根本的に違うので、Googleとしては省電力なプッシュ通知を活用してね、ってことなんでしょうかね。
完全にお手上げ状態になってしまったのですが、諦めの悪い私は何とかDozeモードを回避する方法がないのか考えました。
結局、スリープに入って、OSが「何もしてないから無駄なアプリを止めたり通信切っちゃうね」と気を利かせるのが問題なわけです。
それなら、OSを騙して「ずっと動き続けている」と思わせることができればDozeモードに突入することはないはず。
じゃあ、どうやってOSを騙すのか。
完全にスリープにならないように定期的に動作するようなアプリがあればいいかも、と考えて調べてみると、世の中、同じようなことを考える人がいるもので、すでにアプリがありました。
その名もズバリ「Disable Doze」というアプリです。
他にも「Tasker」というアプリを使って自分で設定すれば可能なようですが、「Disable Doze」はインストールするだけの簡単設定です。
有料アプリですが、私が購入したときは110円で買い切りなので試しにポチりました。
Disable Dozeの画面がこちら
スイッチ1つのシンプルな画面です。
ちょっと分かりにくいのですが、スイッチがオフが Dozeモードを無効化している状態のようです。
これでしばらく様子を見てみました。
結論「大成功」
無事に honor8で DinnerTime Plusは、動作・通信し続けているようで、オフラインになりません!
まとめ
おそらく Huawei製のスマホだけでなく、Android6以降のスマホで DinnerTime Plusが動作しないというケースがあるかと思います。
まずはスマホ本体の設定でバックグラウンド処理を許可してみてください。
機種によって微妙に設定する画面が違ったりしていますが、設定するポイントは
- バックグラウンドでの動作
- バックグラウンドでの通信
の2つです。
それでもダメな場合は、「Disable Doze」といったDozeモードを制御するアプリを入れてみてください。
これは DinnerTime Plusだけではなく、様々なアプリの動作がおかしいなと感じたときも同様の原因なのかもしれません。
最新スマホを買った際、「通知が来ない」「アプリの動作がおかしい」と感じたら、是非お試しあれ。
コメント
先ほど、別なほうで書き込みさせて頂きました。
なるほどです。
「Disable Doze」を入れる前までの段階を、アンドロイド6.0.1で試しましたが、親機からはオフラインのままでした。
私の場合、詳しくないので他のアプリを考えたほうが良いのかもしれません。
satさん
コメントありがとうございます。
DinnerTime Plusをバッテリー最適化しない、データ通信を制限しないの設定にしても親のほうではオフラインのままということでしょうか?
機種ごとに微妙に動作が違う可能性があるので、私のほうでは原因を調べることは難しいかもしれません。。。
Disable Dozeを試しに入れてみてはいかがでしょうか。
あまりお力になれなくてすいません。
色々と参考にさせて頂いております。ありがとうございます。
子どものスマホがHuawei P9liteなのですが、勝手にアンインストールができてしまいます。
アプリアイコンを長押しして、画面最上部に出る「アンインストール」の文字上にスライドするだけで、いとも簡単に出来てしまうようです。
設定やセキュリティ等確認したのですが、見当たらず・・・何かご存知でしょうか?
komattaさん
コメントありがとうございます。
アプリがアンインストールできてしまうのは「デバイス管理者」の設定がOFFになっていると思われます。
https://kamihiro.net/dinnertime-plus-unisntall/
こちらの記事にアンインストール方法を紹介していますが、「設定 → セキュリティ → デバイス管理者」を開いて、DinnerTime Plusのチェックがオンになっているか確認してみてください。
Android7以降になっているとアンインストール時にデバイス管理者もオフにできてしまうので、設定アプリを使えないようにしておく必要があります。
https://kamihiro.net/dinnertime-plus-rule/
こちらの記事の最後のほうに書いてありますが「プライバシーガード」のようなアプリ起動に制限をかけるアプリで設定アプリを制限対象にしておけば子どもが勝手にアンインストールできないと思います。
一度試してみてください。
細かい点が分からなければ、またコメントしてください。
詳しいご説明、ありがとうございます!
教えて頂いた通りにやってみましたが、やはり簡単に画面最上部にスライドするだけでアンインストールできてしまい、いたちごっこの状態です…
プライバシーガードやスマートロックと言ったアプリをいれてみましたが、なしのつぶてです…
komattaさん
うまくいかなったようで、残念です。
P9 liteは手元にないのですが、借りれそうなので明日試してみます。
結果はまたコメントするか記事にしますのでお待ちください。
komattaさん
P9 liteで試してみましたが、アンインストールできてしまいますね。
ちょっと調べてみたのですが、Huawei製のスマホは強力な端末管理機能があるため、アンインストールできてしまうようです。
対策としてはホームアプリを変更してしまうことが一番簡単そうです。
たとえば「Google Now ランチャー」をインストールしてデフォルトホームアプリとして設定します。
そうすればホーム画面からアンインストールしようとすると「端末管理権限」で確認画面が表示されます。
そこで端末管理権限をオフにすればアンインストールできてしまいますが、設定アプリを制限しておくことでアンインストールは防げそうです。
このコメントだけでは分かりにくいかもしれませんので、後日、記事として書かせてもらおうと思います。
わざわざお借り頂いてまで試してくださり、申し訳ありませんでした。
ランチャーの変更にはリスクがあるようなので、もう少し調べてみた実戦したいと思います!
大変助かりました。どうもありがとうございました‼︎
後程記事にされましたら、じっくり拝見させて頂きたいと思います!
度々すみません…
Google Now ランチャーをダウンロードしてみましたところ、アプリのアンインストールを防ぐことが出来ました!
色々と操作が変わり、子どもも不便がっていますが、おかげさまで話し合いもきちんとでき、アンインストールできなくなったからか、諦めモードで時間を決めてやると約束をしました。
本当にありがとうございました!お手数をお掛けしました。
Google Nowランチャーの提供が終わるとの情報もあり躊躇してしまいましたが、しばらくはこの状態で行こうと思います。
komattaさん
お子様と話ができて何よりです。
Google Now ランチャーの提供が終わりそうとは知りませんでした(汗
すいません
要はランチャーアプリをHuawei製のものから変更すればいいので、お気に入りのアプリがあればそれでもOKなはずです。
わが家ではHuaweiのhonor8を使っていますが、ランチャーをbuzzHOMEにしています。
buzzHOMEはテーマを色々と変えられるので、うちの子どもは気に入ったようで機嫌よく使っています。
お時間あればお試しください。
ご参考までに…
Google Nowランチャーでも、やはりアンインストールはできてしまっていました…
本人が言うには、一度再起動したら、dinner timeの有効にするのアラートが出て、それを無効にしたらアンインストールできたとのことでした。
いづれにしても、お約束内での使い方にしていきたいと思いますが…
komattaさん
情報ありがとうございます。
再起動したらアンインストールできたのですか。。。
ちょっと不思議な感じがしますが、こちらでも試してみます。
もしかしてセーフモードで起動したとかはないでしょうか。
あまり知られていませんが、セーフモードで起動されるとアンインストールを防ぐのは無理です。
お子様がそこまでのスキルをお持ちかどうか分かりませんが・・・
komattaさん
こちらにあるP9 liteで試してみましたが、再起動してもアラートは表示されませんでした。
セーフモードでもアンインストールしようとすると端末管理権限のアラートが出ますね。
Androidのバージョンは6.0か7.0のどちらですか?
手元にあるP9 liteが6.0なので、7.0だと挙動が違うのかもしれません。
何度もありがとうございます!
セーフモードはさすがに知らないようです。
Androidは7.0でした。
いづれにしても、dinner timeをアンインストールしない約束をしたので、しばらく大丈夫だとは思いますが…