Android6以降でSMARTalkを使う際の覚書
arrows M03 (android6.0.1)でIP電話アプリSMARTalkを使う場合、
デフォの設定ではまともに使えないのでいろいろ試したのでその覚書、
結論から言うと
SMARTalkの設定を2ヶ所、スマホの設定を1ヶ所、計3ヶ所を変更します、基本はこれでOK
SMARTalkの設定変更
ちなみに、設定が済んだらバックで戻らないで「OKボタン」があるときは必ずOKボタンで戻ること、
OKボタンが無くなったら戻るボタンで戻っていいけど、アプリはいったん必ず終了して再起動すること。
スマホの設定変更
これでOK
android6は1時間無操作放置するとDozeモードに入っちゃうので
1時間毎に画面を表示させてDozeモードを解除します、
ただ、寝ているときにこれを手動でやるのは無理なので(^_^;)
私はMacroDroidというアプリを使って1時間毎に画面を表示(点灯)させています、
これで長時間放置時の着信は完璧になりました。
ちなみに、
当初はPUSH着信のままなんとかならないかと試行錯誤したのですが、
結局のところ、
android6ではPUSH通知が時間の幅がある仕様になってしまったため
(android4ではほぼリアルタイムでプッシュ通知が来た)
運が良ければ相手が発信したら即着信するけど、
運が悪ければ最悪60秒位呼び出してないと着信しないという
実はこれについては面白いお話があって、
アプリを作るときに内部に通知の優先度合いを組み込む仕様になってて、
その優先度合いが最優先になっていればほぼリアルタイムにPUSH通知してくれるという話なんだけど、
SMARTalkは古いアプリなのでそうはなってないらしい(´・ω・`)
ちなみにLINEなんかはきちんと内部的に通知設定が最優先で組み込まれているのでほぼリアルタイムに通知が来るとのこと。
一応、PUSH着信のために色々試行錯誤してPUSH着信できるようになった経緯をいかに記載します、
上記の通りPUSH通知が来るまでの時間に幅があるため電話の着信用には用をなさないんだけど。
--------------------------------------------------
問題:
デフォの設定ではまともに使えないのでいろいろ試したのでその覚書、
結論から言うと
SMARTalkの設定を2ヶ所、スマホの設定を1ヶ所、計3ヶ所を変更します、基本はこれでOK
SMARTalkの設定変更
- 「設定」→「着信方法」を「スリープモードにしない」にする
- 「設定」→「SIPアカウント」→「電話番号の行の右端の→をタップ」→「詳細設定」→「REGISTERの有効期限(秒)」を「60」に設定
ちなみに、設定が済んだらバックで戻らないで「OKボタン」があるときは必ずOKボタンで戻ること、
OKボタンが無くなったら戻るボタンで戻っていいけど、アプリはいったん必ず終了して再起動すること。
スマホの設定変更
- 「設定」→「電池」→「電池の使用量」→右上の「︙メニュー」→「電池の最適化」→プルダウンメニューの「最適化していないアプリ」を「すべてのアプリ」に切り替え→「SMARTalk」を探してタップ→「最適化しない」を選択→「完了」ボタンをタップ
以上3ヶ所の設定変更で基本的に完了なんですが、
android6で搭載されたDozeモードが曲者で、
スマホを長時間放置すると深いスリープに入ってしまいSMARTalkが着信しなくなちゃうんですよね、
試しに朝起きたらスマホに一切触らず、別の電話機からSMARTalkの番号に電話をかけてみてください、
たぶん着信しません(´・ω・`)
これ対策は基本的にはシンプルで
- 1時間毎に画面を表示させる
これでOK
android6は1時間無操作放置するとDozeモードに入っちゃうので
1時間毎に画面を表示させてDozeモードを解除します、
ただ、寝ているときにこれを手動でやるのは無理なので(^_^;)
私はMacroDroidというアプリを使って1時間毎に画面を表示(点灯)させています、
ちなみに、
当初はPUSH着信のままなんとかならないかと試行錯誤したのですが、
結局のところ、
android6ではPUSH通知が時間の幅がある仕様になってしまったため
(android4ではほぼリアルタイムでプッシュ通知が来た)
運が良ければ相手が発信したら即着信するけど、
運が悪ければ最悪60秒位呼び出してないと着信しないという
実はこれについては面白いお話があって、
アプリを作るときに内部に通知の優先度合いを組み込む仕様になってて、
その優先度合いが最優先になっていればほぼリアルタイムにPUSH通知してくれるという話なんだけど、
SMARTalkは古いアプリなのでそうはなってないらしい(´・ω・`)
ちなみにLINEなんかはきちんと内部的に通知設定が最優先で組み込まれているのでほぼリアルタイムに通知が来るとのこと。
一応、PUSH着信のために色々試行錯誤してPUSH着信できるようになった経緯をいかに記載します、
上記の通りPUSH通知が来るまでの時間に幅があるため電話の着信用には用をなさないんだけど。
--------------------------------------------------
問題:
- 画面消灯(スリープ)時にPUSH着信しない
原因:
- サーバがPUSH通知のデータをスマホに送ろうとしてもスマホとのGCMのセッションがタイム・アウトしているためにPUSH通知が送られてこない、
- セッション切れの原因は、スマホが一定時間無通信状態だとプロバイダ(この場合は携帯キャリア)がGCMのセッションを切っちゃうから、
- プロバイダ(この場合は携帯キャリア)が無通信と判断してセッションを切る前に通信を行いGCMのサーバにセッションを貼り続ける
- 「Push Notifications Fixer」または「Heartbeat Fixer for GCM」というアプリでプロバイダ(この場合は携帯キャリア)が無通信と判断する時間よりもkeep alive時間を短く設定する、
- 「Push Notifications Fixer」
https://play.google.com/store/apps/details?id=com.andqlimax.pushfixer.noroot - 「Heartbeat Fixer for GCM」
https://play.google.com/store/apps/details?id=io.github.mobodev.heartbeatfixerforgcm&hl=ja
- これにより無通信と判断されずに常にセッションが張り続けれれる、
- 時間はキャリアによって違うので最短の1分から初めて徐々に伸ばしていく、
- 1分のままでもいいけどその分電池の消費が増えるので。
コメント
コメントを投稿