質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

3422閲覧

Unity)アプリ完全終了からの通知

navesanta

総合スコア198

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/05/04 03:02

設定した時間になったら通知する機能をアプリに実装したく
プッシュ通知が装備できるUnity Mobile Notifications Packageと言うのが
あったので早速実装してみました。

Unity Mobile Notifications Package

そのあと、scriptableとPlayerPrefsで設定したデータを呼び出して
参照して問題なく通知が出ました。(下記のコードを書きました)
デバイスが休止状態になった時点から設定時間を計算してその時に通知するようにしました。

質問は
サーバーを使わずアプリ内でローカルプッシュ通知を実装しているため
デバイスのホームボタンで休止状態にした時は問題なく通知するのですが
右下のボタンで残っているアプリを表示して完全にアプリ終了した時は
通知が発生しません。

完全にアプリを終了した時に通知する方法はサーバーを立ててそちらから
送る形にしないとできないのでしょうか?
個人レベルでやっているのでできたらサーバーを立てるのではなく
それに近い方法で実装できたらありがたいのですがそういった裏技(?)は
ないのでしょうか?

環境)
PC: mac
Unity2018.3
言語:C#
LocalNotification.cs

using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using Unity.Notifications.Android; public class LocalNotification : MonoBehaviour { [SerializeField]Entity_catelist ecatelist; [SerializeField]Entity_poplist epoplist; int setTime; int nowTime; int seconds; int activeHour; int activeMin; int activeFlag; int activeSeconds; int cateId; string title; string message; string prefskeyHour; string prefskeyMin; string prefskeyActive; string m_channelId = "hoge"; // Start is called before the first frame update void Start() { //通知用のチャンネルを作成する var c = new AndroidNotificationChannel{ Id = m_channelId, Name = "hogeApp", Importance = Importance.High, Description = "ここに説明文", }; AndroidNotificationCenter.RegisterNotificationChannel(c); } // Update is called once per frame void Update() { } void OnApplicationPause(bool pauseStatus) { if(pauseStatus){ for(int i = 0; i < 13; i++){ prefskeyHour = "hour" + i; prefskeyMin = "min" + i; prefskeyActive = "active" + i; activeHour = PlayerPrefs.GetInt(prefskeyHour); activeMin = PlayerPrefs.GetInt(prefskeyMin); activeFlag = PlayerPrefs.GetInt(prefskeyActive, 2); cateId = epoplist.sheets[0].list[i].cate_id; title = ecatelist.sheets[0].list[cateId -1].cate_Japan; message = epoplist.sheets[0].list[i].popup; if(activeFlag == 1){ activeSeconds = TimeChangedScript(activeHour,activeMin); UnityNotification(title, message, activeSeconds); }else{ return; } } } } public void UnityNotification(string title, string message, int seconds){ var n = new AndroidNotification{ Title = title, Text = message, SmallIcon = "icon_0", LargeIcon = "icon_1", FireTime = DateTime.Now.AddSeconds(seconds), }; AndroidNotificationCenter.SendNotification(n, m_channelId); } //設定時間と現在の時間の差分を返す int TimeChangedScript(int hour, int min) { DateTime now = DateTime.Now; int nowHour = now.Hour; int nowMinute = now.Minute; setTime = hour * 60 + min; nowTime = nowHour * 60 + nowMinute; if(setTime > nowTime){ seconds = (setTime - nowTime) * 60; }else{ seconds = (1440 + setTime - nowTime) * 60;       //1440 = 24 * 60:時間を分にして加算 } return seconds; } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

興味があったので調べましたが、以下のURLは参考になると思います。

https://qiita.com/Ijoru/items/5994642da3e9a1d9776a

投稿2019/05/14 01:36

kamikaze.cappa

総合スコア558

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

navesanta

2019/05/15 04:30

回答ありがとうございます。確認したところ紹介されたページのassetsは既にUnityAssetsStoreで終了しているようです。しかしローカルプッシュ通知はアプリが終了しても生きているようなことが書いてあったことは参考になりました。うまく挙動しないのは実装の仕方に問題があるのかもしれません。ありがとうございました。ベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問