android - 如何从 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");
}
解决方案
推荐阅读
- c# - 如何从 C# 中的列表创建嵌套列表?
- postgresql - Postgres 数据库索引
- javascript - 在 Angular 中创建全局 javascript 对象
- c# - 通过资源加载 WPF ContentControl 作为位图不起作用
- java - 平铺:gzip 压缩不可用
- servlets - 使用 JavaScript 或 servlet 重定向到当前页面
- flutter - 将图像数组上传到服务器
- sql - 带日期的交叉连接查询
- react-native - Expo CLI 已全局安装,但“npm start”命令仍会询问
- sql-server - SQL - 选择层次结构中的子项以及父项