我正在创建一个基于位置的游戏,我想从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");
}