首页 > 解决方案 > 如何从 Unity 创建前台服务

问题描述

我正在创建一个基于位置的游戏,我想从我的 Unity 项目中创建一个前台服务。该前台服务会将用户的位置发送到我们的服务器。我设法创建了一个库,将我当前的活动发送到库,但问题是我无法从中启动服务。

您的帮助将不胜感激。

更新 我也使用firebase FCM和分析,所以我打印了我得到firebase活动而不是统一活动的日志,任何人都可以帮忙,我对此很菜鸟,所以也许这将是一个菜鸟错误。

这是我的代码:

安卓库

public static void RecieveActivityInstance(Activity temp)
{
    Log.d("XR Service", "RecieveActivityInstance: "+temp);
    _Activity = temp;
}

public static void StartMyService()
{
    Intent intent = new Intent();
    intent.setAction("com.abc.xy.location.customlibrary.CustomService");
    _Activity.startService(intent);
}

统一脚本

AndroidJavaClass unityClass;
AndroidJavaObject unityActivity;
AndroidJavaClass customClass;

private void Awake()
{

    sendActivityReference("com.abc.xy.location.customlibrary.Unity_Native_Event");
    startService();
}

void sendActivityReference(string packageName)
{
    unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    unityActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity");
    Debug.Log($"RecieveActivityInstance: {unityActivity.ToString()}");
    customClass = new AndroidJavaClass(packageName);
    customClass.CallStatic("RecieveActivityInstance", unityActivity);
}

void startService()
{
    customClass.CallStatic("StartMyService");
}

标签: androidunity3d

解决方案


推荐阅读