如何知道app / game是否是通过Android上的通知启动的?

时间:2017-08-31 18:22:07

标签: java c# android unity3d push-notification

我在Unity for Android中制作游戏。我已经实施了一个通知系统。通知显示并单击它们打开游戏。我坚持的是如何通过点击通知来了解游戏/应用是否已启动?

以下是使用https://github.com/GoShikhar/unity-android-notifications/blob/master/PluginSrc/app/src/main/java/net/agasper/unitynotification/UnityNotificationManager.java

的通知插件的java代码

这是我的清单https://github.com/GoShikhar/unity-android-notifications/blob/master/UnityProject/Assets/Plugins/Android/AndroidManifest.xml

在我的团结开始场景中,我使用它来检查意图消息。

void Start(){
 AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
 var activityObject = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
 AndroidJavaObject intent = activityObject.Call<AndroidJavaObject>("getIntent");
 int NotificationID = intent.Call<int>("getIntExtra", "id", -1);
 print("NOTIFDICATION ID " + NotificationID);
 bool hasExtra = intent.Call<bool>("hasExtra", "arguments");
 string arguments = null;
 if (hasExtra)
 {
    AndroidJavaObject extras = intent.Call<AndroidJavaObject>("getExtras");
    arguments = extras.Call<string>("getString", "title");
    print("title : " + arguments);
    arguments = extras.Call<string>("getString", "message");
    print("message: " + arguments);
 }

 if (arguments != null)
 {
        print("App opened via notification");
 }
}

这不起作用。正在打印默认通知ID,即-1。标题和消息也为空。即使通知具有标题和消息参数。

我见过Android Studio的很多例子,但Unity没有。所以任何帮助都将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你的意思是深度链接?也许这个Github项目会有所帮助:https://github.com/TROPHiT/UnityDeeplinks