我的应用程序目前有 2 个服务和 1 个 Activity 。我的第一个服务,叫做传感器,只返回手机传感器的所有值。然后我有第二个服务叫做 Waypoint,它会向我的 Arduino 卡发送命令,让我的机器人到达一个路点。因此,在某种程度上,Sensor 将值发送到 Waypoint。此外,我将 Waypoint 绑定(bind)到我的 Activity 以“查看”发送的命令。但是,我不知道如何让我的 2 个服务进行通信(如何将传感器的值发送到我的 Waypoint 服务?),有人有这方面的教程吗?我只看到有关服务和 Activity 之间通信的教程...
谢谢大家!
PS:对不起我的英语...
编辑:
感谢您的回答!
我只是按照你们所说的做了,但它似乎不起作用(我没有错误,但没有显示任何内容,我想给你我的代码,但它太长了......)。好吧,如果你有勇气:http://paste.tgl0be.org/?id=10458 .
这是我正在尝试做的:
- 我的传感器服务获取所有传感器的值,并使用 sendBroadcast 方法发送方位角和启动服务 bool 值。
- Waypoint 有一个广播接收器,它获取传感器服务发送的值并更新它自己的变量(所以这里只有方位角和开始)
- 连接显示方位角值
但是什么也没有显示...有人知道这个问题吗? (显然有人读过我的代码)
我不知道我是否尊重论坛规则,事实上我不认为我回答了我的问题...如果是这样,抱歉...
再次为我的英语感到抱歉
新编辑:
我终于可以得到一些结果,实际上总是 0...我想知道我的接收器是否正确声明到我的 AndroidManifest 中,因为我的接收器是 Waypoint 的内部类,这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Connexion"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver class=".Waypoint$Receiver" android:name=".Waypoint$Receiver">
<intent-filter>
<action android:name="android.intent.action.EVENT_ACTION" />
</intent-filter>
</receiver>
<service android:name=".Sensors" android:enabled="true"/>
<service android:name=".Waypoint" android:enabled="true"/>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.LOCATION" />
我认为不是,它可以解释问题。 “$”符号用于内部静态类,而我的 Receiver 不是静态的。有谁知道如何在 AndroidManifest 中声明一个非静态内部类?
最佳答案
由于您的传感器服务与 Waypoint 服务异步通信,您可以让传感器服务发送带有额外数据(传感器数据)的广播,Waypoint 服务将注册 BroadcastReceiver 以获取这些广播。
关于安卓 : Make 2 services communicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900903/