如何从Unity创建前台服务

时间:2019-12-30 06:35:48

标签: android unity3d

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

您的帮助将不胜感激。

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

这是我的代码:

Android库

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);
}

Unity脚本

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");
}

0 个答案:

没有答案