Android-如何在Service和命令行之间进行通信

3

我想制作一个在后台运行的安卓应用程序,可以从我的bash脚本接收字符串。
该应用程序使用该字符串显示一个文本提示框。
但是我不知道如何将字符串发送到应用程序,也不知道如何接收字符串。
请帮忙解决。

1个回答

6
您可以通过am使用Intent将其发送到您的服务。代码示例如下:
adb shell am startservice -a com.yourpackage.action.name.SHOW_TOAST -e text "i did it"

您的服务可能如下所示:

....

@Override
public void onStart(Intent intent, int startId) {
    Toast.makeText(this, "Text: " + intent.getStringExtra("text"), Toast.LENGTH_LONG).show();
}
....

并将以下内容添加到AndroidManifest.xml中:

 <service  android:name="com.yourpackage.SomeService">
     <intent-filter>
            <action android:name="com.yourpackage.action.name.SHOW_TOAST" />
     </intent-filter>
 </service>

这个类应该叫SHOW_TOAST,对吗? - tiranodev
不是的,这是Intent动作的名称。我已经更新了答案。 - inazaruk
在回答之前,我已经进行了测试。所以如果有什么问题无法正常工作,请告诉我。 - inazaruk
但现在我想知道如何停止这个服务。 - tiranodev
你应该阅读http://developer.android.com/guide/topics/fundamentals/services.html。这是一个描述服务如何工作的好资源。 - inazaruk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接